青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 19,  comments - 21,  trackbacks - 0

轉載的一篇文章:


本篇主要寫給對const語法理解存在誤區的c++學習者,希望所有對這方面比較模糊的朋友可以閱讀并從中找到一些答案。

2004-11-19 21:00
Const 最早想法是用于取代預處理器#define 這個宏,從而形成常量的概念。針對常量const對象,const指針及指向const的指針,函數const類型參數,const 函數返回類型, const類成員,及const成員函數,及對const最后理解的一些總結來描述 const。
① const對象和const類型的對象
對于這兩個概念的描述如下
1. int const Object; //Object是一個const量是不可以被修改 Object = 2;Error
2. const int Object; //Object是 const int型他所存放的內容不可以被修改
對于1,2這兩種const用于對象,表述雖然不同但是效果是一樣的。因為對象本身存放著內容對對象的改變就是對于對象內容的改變,同樣改變后者也是在改變前者。所以語義上一樣的。
② const指針 和 指向const的指針 及兩者結合
對于三個概念描述如下
1. int* const p; //指針p是const不能被修改 例如p++; //修改p本身會Error
//修改p指向內容 *p = 2; //OK
2. const int* p; //p是指向一個整形常量的指針指向的內容不可以改變 p++;//OK
// *p = 2; //Error
3. const int* const p; //指針p本身是不能被修改并且p所有有效的內容也不能被
//修改 *p = 2; Error 和 p++; Error
③ const 參數修飾 和 參數返回類型的const修飾
1.const 參數修飾
此時函數參數修飾 const的具體用法 ① ②中用法是一樣的
例如 void Fun( const int I ) { I++;} //Error不能修改常量I
2.const修飾函數返回類型用法也是類似于 ①②中,僅僅修飾的對象變化變成一個返回對象
例如:const int Fun() { static int I; return I;}
int Res = (Fun())++ //Error不能修改常量返回對象
④ const類成員 和 const 成員函數
1. const成員
類const成員在構造期間會允許被初始化并且在以后不能被改變。我們就可以知道類const成員和一般const 變量是有所不同的,類const成員是對應于每個對象而言才有意義。因為他在構造期被初始化,只有當類實例化后才會進行構造。所以類const成員可以這樣描述: 在類的每一次實例化時被初始化,在這個對象的生存周期中不可改變。
2. const 成員函數
描述: void Class::MemberFun() const {}; //此時這個const修飾的this所有類成員變量都不允許在這個函數體作用后被修改。這在設計上會帶來一些好處,能防止你意外的處理帶來的問題。
總結:
<1> const 常量 一般編譯器不會分配空間只是維護一張表。而當extern 外部引用這個常量或者“&”對這個常量取地址時,編譯器才會為其分配地址。Const本身的機制比較復雜。
<2> const 記憶法則 const修飾后面一個最近的名稱。我曾初學的時候被const 修飾搞的糊里糊涂,后來慢慢的總結我覺得這樣理解最容易的。
例子: const int I; 此時const僅僅修飾int 表明 I不是一個常量但是I的內容是常量。因為c/c++表達 對I的改變就是對I內容的改變所以 I也類似一個const。大家不妨可以用指針const修飾試試理解會有幫助的我想。
<3> 對于所有非const 類型可以無條件轉化為 const類型,但是后者不能自動轉化為前者除非顯式的強制轉化去掉const性。這樣做是有意義的,因為const類型是非const的一個子集是一種特殊,由普遍轉化為特殊是合理的,就象模板特化,繼承的向上映射都是有意義的。
<4> 記住所有const修飾的內容并不是永遠不可改變,如果人為的強制轉化編譯器是不會提醒的。因為它沒有義務這么做,所以我們對其轉化時要小心。
<5> 在const類成員函數處理時,我們引入了mutable修飾類成員變量,經過其修飾的成員變量可以在const類成員函數中被修改,編譯器是允許的。而其他未被mutable修飾的成員還是按照const規則不能在const成員函數中被改變。



函數后面加“const”與不加是兩個不同函數,如:

#include 

using namespace std;

class A
{
public:
A(
int i, int j){a = i; b = j;}
void print();
void print() const;
private:
int a, b;
}
;

void A::print()
{
cout 
<< "hello!" << a << b << endl;
}

void A::print() const
{
cout 
<< "hello const!" << a << b << endl;
}


int main()
{
A ss(
3,6);            // 定義A的對象時,沒有用“const”
ss.print();
const dd(20,2);     // 定義A的對象時,用了“const”
dd.print();
}

posted @ 2005-12-10 20:08 halCode 閱讀(747) | 評論 (0)編輯 收藏

  昨天去參加筆試,遇到了一題考計算機里存放的數據都是以原碼、反碼、還是補碼的形式存放的。我還真的很久沒有考慮過原碼補碼的問題了,不過憑他考這個問題,我可以猜出答案一定是補碼了。雖然答案知道了,但是還真不知道還有這么一說,所以回來在網上搜了一篇這樣的文章,才算是弄清楚是怎么一回事了:


    數值有正負之分
,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了.假設機器能處理的位數為8.即字長為1byte,原碼能表示數值的范圍為

(-127~-0 +0~127)256.

  有了數值的表示方法就可以對數進行算術運算.但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下: 假設字長為8bits

( 1 ) 10-  ( 1 )10 =  ( 1 )10 + ( -1 )10 =  ( 0 )10

(00000001) + (10000001) = (10000010) = ( -2 ) 顯然不正確.

  因為在兩個整數的加法運算中是沒有問題的,于是就發現問題出現在帶符號位的負數身上,對除符號位外的其余各位逐位取反就產生了反碼.反碼的取值空間和原碼相同且一一對應. 下面是反碼的減法運算:

 ( 1 )10 -  ( 1 ) 10=  ( 1 ) 10+ ( -1 ) 10=  ( 0 )10

 (00000001) + (11111110) =  (11111111) =  ( -0 )  有問題.

( 1 )10 -  ( 2)10 =  ( 1 )10 + ( -2 )10 =  ( -1 )10

(00000001) + (11111101) =  (11111110) =  ( -1 ) 正確

問題出現在(+0)(-0),在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記并放入運算之中,包含有零號的印度數學和十進制計數對人類文明的貢獻極大).

于是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示范圍為:

(-128~0~127)256.

注意:(-128)沒有相對應的原碼和反碼, (-128) = (10000000)  補碼的加減運算如下:

( 1 ) 10-  ( 1 ) 10=  ( 1 )10 + ( -1 )10 =  ( 0 )10

(00000001) + (11111111) =  (00000000) = ( 0 ) 正確

( 1 ) 10-  ( 2) 10=  ( 1 )10 + ( -2 )10 =  ( -1 )10

(00000001) + (11111110) =  (11111111) = ( -1 )  正確

   所以補碼的設計目的是:

     ⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.

⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計

  所有這些轉換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼。看了上面這些大家應該對原碼、反碼、補碼有了新的認識了吧!


下面總結一下:
1。正數的原碼反碼補碼都相同,負數的反碼是除符號位為1外,其他位全取反;補碼就是反碼+1
2。(10000000)規定為-128
3。計算機中的數據是以補碼形式存儲的

posted @ 2005-12-09 19:32 halCode 閱讀(7079) | 評論 (2)編輯 收藏
  來上海近一個月了,幾乎每天兩點一線的來回跑著,現在,工作基本上已經做完,下午就買票回學校了。記得我還沒有來上海時,心里是多么不情愿,不希望在這個寂寞的季節來到這個陌生的城市,我真的不愿孤獨,雖然我會習慣于孤獨。

  工作交接完畢后,老板依然努力著說服我留下,我最終還是沒有留下,因為我不得不回去找工作,我必須經歷這一個過程,所以我下定決心回去了。但是在分別前的這一兩天里,我發現我更多的是不舍。不知道我是習慣了這里一個人的生活,還是對這里我們一起吃飯、一起上班的人產生了友情。

 我是個重情義的人,我會因為老板創業的艱辛而不去跟他計較報酬,不會對他提供給我的生活條件提出質疑,當然這些也不是特別的差。一個老同學跟我說:別指望在公司里跟老板產生什么真正的友情;還有人說:老板始終是會以自己公司的利益著想的。這些話的確有道理,即使老板真的把你當朋友,但是他經營著這個公司,他所有的生活和工作就是為了這個公司,所以他對友情的引導也不會脫離他公司的利益。我不認為這有多么自私,甚至不能用“自私”這個詞來形容,發而我覺得,也許大多數人對友情的期望過于理想了,即使也許我就是其中之一。

  下午就要走了,其實并不太想走,但也不意味著想留。整個人現在是矛盾的,對于以后的人生,越來越覺得壓力太大。我以前都喜歡走一步算一步,這一次我很想從這種模式中擺脫出來,但是發現我仍沒有實現。

  不管怎樣,票是買好了,火車是一定會開的。人能像火車一樣嗎?從一個起點,一直開到預定的終點!
posted @ 2005-12-04 11:04 halCode 閱讀(285) | 評論 (0)編輯 收藏
int型在16位、8位機上默認的是short int型,占2個字節,所以51單片機開發上的int類型都是2字節
        在32位機上默認的是long int型,占4個字節,所以一般PC上int類型都是4字節

指針類型所占空間不會因為所指變量類型的不同而不同,在16位8位機上都是2字節;在32位機上都是4字節,如char *a、int *b, sizeof(a)、sizeof(b)全部都等于4

signed char 類型的取值范圍是 -128~127
posted @ 2005-11-26 10:33 halCode 閱讀(355) | 評論 (0)編輯 收藏
從來沒有獨立做過ODBC數據庫的程序,今天才發現原來自己動起手來是那么得蹣跚,呵呵。看了《Visual C++中為普通程序添加ODBC應用》后收獲不小,現把這些記錄下來,以便日后再忘記的話可以查閱^_^#

1。給程序加入ODBC數據庫的支持需要用到兩個類:CDatabase和CRecordset,主要是后面一個;
2。一般步驟為:
(1) 創建一個繼承于CRecordset的類CMyRS,系統會自動提示你選擇數據源,并會自動關聯數據表中各項屬性
(2)在需要查詢數據庫的地方先construct一個CMyRS類的實例myRS,然后調用myRS.Open()打開記錄集
(3)移動數據集指針到需要的地方,從CMyRS中系統自動關聯好的數據表各項屬性的變量中讀取相應的值
3。需要注意的是:
(1)調用myRS.Open()前一定要先construct CMyRS類的對象,構造的時候可以事先創建一個CDatabase類的對象,然后將該對象的指針傳給構CMyRS的造函數,如:CMyRs myRS(&db); 如果為空的話,當調用myRS.Open()時,系統會自動為myRS構造一個CDatabase的對象,并且調用CMyRS類的Default SQL 和CONNECT字符串來連接數據源。所以不用擔心沒有連接數據庫數據源。
(2)如果事先創建了一個CDatabase的對象db,則可以先用自己的conn連接字和sql連接字Open它,然后傳給CMyRS的構造函數,構造的myRS再不用任何參數Open()就可以了

可能有些地方理解的還是不對,希望隨著以后多接觸再來修改!
posted @ 2005-11-24 16:47 halCode 閱讀(461) | 評論 (1)編輯 收藏
qt對國際化有很好的支持。但默認的是unicode編碼。中文系統下默認的并非unicode,
而是比如gbk或gb2312。所以在進行const char*參數傳遞和顯示時必須特別注意。
比如在默認情況下
QMessageBox::information(this, "Test", "這是一個測試");
中文字符無法正確顯式
又如
bool connect(const char * connectString);
你如果輸入
QString str("一個測試");
connect((const char*)str);
默認是調用QString.latin1()方法,是直接從Unicode的QString返回latin-1字符表示
集。在中文系統下有時不是你想要的。
解決方案:在main.cpp里增加
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
這時涉及到QString/QCString到const char*的轉換將使用本地的編碼集。
類似的還有setCodecForTr()方法。

NOTE: 這跟qt使用unicode進行內部通訊、顯示并不沖突。當顯示一個const char*時,
qt會將const char*再行轉成unicode。


另一種麻煩點的方法:

在寫QT程序的時候,怎樣使用中文?QT內建了國際化支持,可以使用國際化支持來實現。但,比較復煩瑣,那怎么簡單地使用中文呢?
QT 的QString內部是使用Unicode編碼的,在寫源碼的時候,可以使用本地的GB2312/GBK/GB18030,或者UTF8編碼。如果是使用前者的話,那可以使用QString::fromLocal8Bit("本地中文字符串")來得到想要的結果。如果是使用后者的話,可以使用 QString::fromUtf8("UTF8編碼格式的中文字符串")來得到想要的結果。
posted @ 2005-11-23 17:54 halCode 閱讀(5300) | 評論 (0)編輯 收藏

1. QT和VC目前最大的不同就是消息的管理
    VC的不同對象之間發送消息是對象A發送一個消息給對象B就不管了,至于B對于此消息該什么響應函數來處理,由對象B自己定義的消息處理函數來響應;
    而QT中,必須有一個平臺來管理A-->B這個過程,它需要知道A發生了什么消息(signals),傳給B后,還要通知B用什么消息處理函數(slots)來處理。

2. 在有自定義消息處理的類中,必須用這樣的結構
   

Q_OBJECT  //這種signal-slot結構必須使用的宏

public slots:

signals:

3. 當一個.h文件中申明一個類的變量,而這個類已經在其他文件中定義好了時,可以只把這個類的頭文件只包含在該.h文件對應的.cpp文件中,而在該.h文件中只需要用一句class ClassName再申明一次就可以了,這樣可以提高編譯速度

4. 在頭文件中可以用下列一組宏來防止該頭文件被包含多次:(具體用法還要再查查)
 

#ifndef LCDRANGE_H
#define LCDRANGE_H
    .       
//頭文件內容開始
#endif
posted @ 2005-11-21 15:44 halCode 閱讀(543) | 評論 (0)編輯 收藏
#include <QApplication>
#include 
<QFont>
#include 
<QPushButton>
#include 
<QWidget>

class QMyWidget : public QWidget
{
public:
    QMyWidget(QWidget 
*parent = NULL);
}
;

QMyWidget::QMyWidget(QWidget 
*parent) 
    : QWidget(parent)
{
    setFixedSize(
200200);
    QPushButton  
*quit = new QPushButton("Quit"this);
    quit
->setGeometry(104018040);
    quit
->setFont(QFont("宋體"18, QFont::Bold));
}
    

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

       QMyWidget myWidget;

    myWidget.show();
    
return app.exec();
}

注意:
1。定義一個類時用class關鍵字,定義完后不要忘記這時一個語句,需要用分號結束。
2。Qt成員函數的變量命名規則是小寫開頭、大寫間隔,與VC中的不一樣。
3。好久沒有用C++發現好多語法都生疏了,唉,不行了,要趕緊撿起來, ^_^#!
posted @ 2005-11-17 14:24 halCode 閱讀(796) | 評論 (1)編輯 收藏

明天
      就像是
             盒子里的
       巧克力
糖!
      什么滋味,充滿想像!

    第一次聽4INLOVE的《一千零一個愿望》就被這優美的旋律吸引了,幾位純真可愛的小女生將我帶到了快樂的童年,讓我情不自禁無邊地幻想起童年的未來。想一想,自己都忍不住想笑了!

   今天,突然看到了里面的這句歌詞,突然有種悸動的感覺,我的明天,到底在哪里?
 
   我猜這句歌詞來自于經典電影《阿甘正傳》中阿甘的那句經典對白:Mom said, life is like a box of chocolates, you never know what you'll gonna get! 很可惜,我沒有看過這部電影,只是聽過這句話的解釋,所以,我并不能真正知道我需要學習阿甘怎樣的精神。有時候,我就覺得我跟我所想象的阿甘有90%的相似:老天不公,只有10%的不同:我沒有他那種勇敢和執著。我也常常抱怨我所不能改變的現實,我也常常告訴自己要努力去改變我能改變的事實,但是到頭來,我仍沒有找到我所希望的我,其實我要求不高,真的;可是也許我努力的也不夠,可能也是真的!

我的明天在哪里,我的明天是什么滋味?我不可避免的走到這一步,可是我卻還沒有做好拆開巧克力盒子的準備!所以,我很害怕!不僅僅害怕我的巧克力不知道是什么滋味,更害怕我仍然不敢拆開巧克力盒子。

我真的該準備了,我必須面對,不要害怕拆開里面的巧克力。我有我的愿望,我有我的明天,我不愿意再停留在昨天了!!

posted @ 2005-11-13 16:02 halCode 閱讀(503) | 評論 (0)編輯 收藏
僅列出標題
共2頁: 1 2 

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆分類

隨筆檔案

文章分類

文章檔案

相冊

編程資源

不務正業

找工作

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            噜噜噜久久亚洲精品国产品小说| 亚洲精品久久久久久久久久久久久| 亚洲视频在线观看| 欧美在线视频一区二区| 一本色道久久99精品综合| 欧美www在线| 亚洲黄一区二区| 欧美成人在线免费观看| 国产精品亚洲第一区在线暖暖韩国| 久久综合中文| 欧美成年人视频网站| 在线亚洲电影| 国产精品乱码一区二三区小蝌蚪 | 国产欧美精品| 亚洲自拍偷拍麻豆| 亚洲图片欧洲图片av| 亚洲国产婷婷香蕉久久久久久| 久久人人97超碰人人澡爱香蕉| 国产资源精品在线观看| 久久久五月婷婷| 久久久免费精品视频| 在线观看精品视频| 亚洲国产天堂久久综合| 一本一本久久a久久精品综合妖精| 欧美日韩一区二区三区免费| 亚洲午夜精品17c| 亚洲影院污污.| 今天的高清视频免费播放成人| 欧美国产免费| 欧美日韩福利在线观看| 欧美影院成人| 麻豆精品在线观看| 亚洲午夜在线视频| 翔田千里一区二区| 亚洲一区二区高清视频| 亚洲欧美综合国产精品一区| 国产一区二区剧情av在线| 亚洲第一成人在线| 欧美午夜片在线观看| 久久精品最新地址| 欧美激情aaaa| 久久福利资源站| 欧美大香线蕉线伊人久久国产精品| 亚洲一区二区毛片| 久久久7777| 亚洲在线日韩| 美女精品一区| 欧美亚洲在线观看| 蜜臀久久久99精品久久久久久| 国产精品嫩草久久久久| 可以免费看不卡的av网站| 欧美精品日韩www.p站| 欧美一区亚洲一区| 欧美成人第一页| 欧美在线免费| 欧美日韩国产精品一区| 老牛嫩草一区二区三区日本| 欧美三级午夜理伦三级中视频| 久久久亚洲精品一区二区三区 | 欧美伊久线香蕉线新在线| 亚洲第一精品福利| 亚洲网在线观看| 亚洲精一区二区三区| 久久精品成人| 欧美在线亚洲在线| 欧美久色视频| 麻豆精品视频在线观看| 国产精品久久久久免费a∨大胸| 欧美成年人视频网站欧美| 国产精品羞羞答答xxdd| 亚洲乱码国产乱码精品精98午夜| 伊人激情综合| 欧美一区二区三区四区在线| 国产精品欧美久久久久无广告| 欧美顶级艳妇交换群宴| 国产一区二区三区久久悠悠色av | 欧美成人小视频| 欧美fxxxxxx另类| 国产小视频国产精品| 中文精品视频| 亚洲午夜一区| 欧美日韩1234| 狠狠色丁香久久婷婷综合丁香 | 亚洲精品国产拍免费91在线| 亚洲第一在线综合在线| 欧美在线影院| 久久国产精品久久久久久电车| 欧美午夜一区二区| 日韩五码在线| 亚洲性感美女99在线| 国产精品99免视看9| 久久国产乱子精品免费女| 久久精品亚洲精品国产欧美kt∨| 午夜精品福利电影| 国产视频一区免费看| 先锋a资源在线看亚洲| 久久久久久9| 国内一区二区在线视频观看| 噜噜噜躁狠狠躁狠狠精品视频| 国产一区二区三区日韩欧美| 久久精精品视频| 久久综合一区二区三区| 亚洲国产99| 欧美精品电影| 亚洲午夜羞羞片| 久久久久久久激情视频| 亚洲成人原创| 欧美精品一区在线| 一本久道久久综合狠狠爱| 欧美揉bbbbb揉bbbbb| 制服丝袜激情欧洲亚洲| 国产精品久在线观看| 香蕉久久国产| 欧美福利视频在线| 正在播放亚洲一区| 国产伦精品一区二区三区在线观看| 亚洲欧美日韩中文视频| 麻豆freexxxx性91精品| 一区二区欧美视频| 国产日韩欧美a| 蜜月aⅴ免费一区二区三区| 99re热精品| 乱中年女人伦av一区二区| 久久精品导航| 国产欧美精品在线| 美女91精品| 国产精品99久久久久久白浆小说| 欧美一站二站| 欧美精品在线免费播放| 亚欧美中日韩视频| 欧美99久久| 亚洲欧美日韩综合aⅴ视频| …久久精品99久久香蕉国产| 欧美午夜宅男影院| 鲁鲁狠狠狠7777一区二区| 在线亚洲观看| 亚洲第一成人在线| 久久精品99无色码中文字幕| 亚洲日本中文字幕区| 国产亚洲一区二区三区在线播放| 99综合视频| 国产精品欧美日韩久久| 欧美国产激情| 久久久另类综合| 亚洲尤物在线| 亚洲精品乱码| 免费亚洲一区二区| 久久成人综合视频| 亚洲午夜女主播在线直播| 亚洲国内自拍| 国产一区二区精品久久| 欧美天天影院| 欧美日韩亚洲国产精品| 久久夜色精品一区| 久久精精品视频| 亚洲欧美日韩系列| 一本久道久久综合中文字幕| 国产午夜精品麻豆| 欧美搞黄网站| 在线看一区二区| 国产一区二区丝袜高跟鞋图片| 欧美视频一区二区| 欧美—级在线免费片| 亚洲精品久久久久久久久久久久久 | 美女精品自拍一二三四| 欧美怡红院视频| 亚洲欧美在线免费观看| 一二三区精品福利视频| 亚洲免费大片| 亚洲精品少妇网址| 亚洲精品国产精品乱码不99| 亚洲国产成人午夜在线一区| 激情一区二区| 一区二区在线观看视频在线观看| 国产亚洲欧美一区| 国产中文一区二区| 韩国成人理伦片免费播放| 国产一区二区视频在线观看| 国产午夜精品久久久久久免费视 | 国产精品国产a级| 国产精品xvideos88| 国产精品99久久不卡二区| 亚洲四色影视在线观看| 亚洲午夜免费视频| 亚洲免费影视第一页| 欧美亚洲综合久久| 久久久999精品| 欧美fxxxxxx另类| 欧美日本一道本在线视频| 欧美图区在线视频| 国产美女精品视频| 影音先锋在线一区| 99一区二区| 欧美一区二区啪啪| 免费在线国产精品| 欧美日韩一卡| 欧美日韩精品福利| 国产伦精品一区二区三区在线观看| 国产一区二区三区免费观看| 亚洲破处大片|