日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 笔记点滴

發布時間:2025/4/5 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 笔记点滴 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


1.while(0)二種用法,一種是用于跳轉,一種是用于宏

2.聲明變量中的外部變量是用extern,聲明寄存器變量是register.

3.static全局變量,static局部變量,區別在于:雖然都是存放在全局存儲區,但全局static作用域為整個文件,局部static變量作用域為聲明區域。當定義它的函數或語句塊結束時,其作用域隨之結束。再次進入后又會恢復其值。
static函數則又稱內部函數,即只能被當前文件使用,其他文件不能調用。

4.private 靜態成員數據與public靜態成員數據區別在于private只能由類的成員方法來賦值,不能在其他地方進行賦值,包括子類.

5.定義直接寫在類里面的是內聯函數,寫在外面的是外聯函數。

6.類數據成員指針和類方法指針:定義指向該類的(public)數據成員和方法的指針。假如類myclass有數據成員public:int c和成員方法int cc();在main就可以定義 int myclass::*pc,pc=&myclass::c,my.*pc=2;int (myclass::*pcc)(),pcc=&myclass:cc;

7.指針數組和數組指針。int (*a)[4],指向數組的指針。int *p[4],數組元素為指針的數組。

8.常量指針和指針常量.
char * const pl=string1;
p1=string2;
*p1="this a string";//合法,因為指針p1所指向的內容是可以更新的。
const char* p2=string1;
p2=string2;//指針可以更改.
*p2="this is a string";//非法,p2所指向的字符串是不能更新的。const 在*前面就是常量指針(內容是常量),在*后面就是指針常量了。

9.定義常成員函數。void disp() const{} ,如果不是內聯函數,則在外部也得在尾部加上const.
const int i;常數據成員,則要通過構造函數的初始化列表來進行初始化:Myclass():x(i);

10.字符串前面加"L","_T","_TEXT",L是將ANSI轉換成unicode,_T是根據環境設置(unicode/ansi)來決定轉換的結果._TEXT和_T一樣。只是__TEXT和TEXT是windows宏,:__T、_T和_TEXT是VC宏.unicode與多字節是二回事,多字節多指w開頭的.

11.派生類的繼承方式決定著基類成員對派生類的可見性和基類成員對派生類對象的可見性。class a:public b:派生類的對象可以訪問基類中的公有成員;派生類及派生類的子類的成員函數可以訪問基類的公有成員和保護成員。class a:private b:派生類可以訪問基類的公有成員和保護成員,不能被派生類的子類訪問。基類的所有成員對派生類對象都是不可見的。class a:protected b:與private相同,區別只是基類的公共成員和保護成員都作為派生類的保護成員,并且不能被派生類的子類訪問。

12.函數參數分為傳值,傳址,引用。傳址為a(int *b);a(&i).引用為a(int &b);a(i);

13.操作系統獲取消息并傳入消息隊列,在程序里面Getmeessage取得消息,DispatchMessage會先調用windows,進入管態(大概是range?? 0),然后再由windows調用窗口的函數。為什么這么麻煩?因為這樣windows就可以知道你的程序運行到什么情況了, windows來調用你的窗口,這樣你的窗口返回的時候windows就知道你已經處理過一個消息了,如果沒有新的消息進入消息隊列, windows就不再會給你的進程分配時間片.

14.建立的窗口與窗口類就是通過類名稱。WNDCLASSEX.lpszClassName="a"與CreateWindow("a").

15.消息能夠被分為「隊列化的」和「非隊列化的」。隊列化的消息是由Windows放入程序消息隊列中的。在程序的消息循環中,重新傳回并分配給窗口消息處理程序。非隊列化的消息在Windows呼叫窗口時直接送給窗口消息處理程序。也就是說,隊列化的消息被「發送」給消息隊列,而非隊列化的消息則「發送」給窗口消息處理程序。任何情況下,窗口消息處理程序都將獲得窗口所有的消息--包括隊列化的和非隊列化的。

16.GetAsyncKeyState與GetKeyState區別.GetKeyState只能在消息處理過程中來取得按鍵的狀態,要在之外取得狀態就得用GetAsyncKeyState.

17.char *p = "world";???? // 注意p指向常量字符串 p[0] ='X'; //出錯,因為不能改變常量值.這里只能使用數組而不是指針:char p[]="world";

18:求函數字符數組參數的大小:void func1(TCHAR abc[]? ){?TCHAR strNum[3];wsprintf(strNum,_T("%i"),wcslen(abc));MessageBox(NULL, strNum , abc, MB_YESNO);}

19.函數的缺省參數值必須放在聲明處,而內聯函數inline則必須放在函數定義處。

20.const類成員的初始化要放在初始化列表里面進行。

21.?? int???? GetCount(void)? const;//const成員函數,不能修改數據成員的函數定義.const只用于放到函數尾部。

22. 所有字符串函數都盡量用_t開頭的,(_tcslen等),會自動根據_unicode開頭來選擇使用寬字符還是ansi字符。而包含CCH的則不會報錯,而是截斷字符串,如StringCchCat,StringCchCopy,StringCchPrintf,StringCchPrintfEx等。

23.全局變量會初始化,而局域變量則是未初始化狀態,是一個隨機值。

24.指針引用. int i=111;int *pi=&i;int *&pti=pi; pti是一個指向指針的引用。引用必須初始化,并且引用是不能重復定義的.

25.const類成員要修改非const成員變量,則要將該成員變量聲明為mutable.

26.int i=20;這是初始化.int i;i=20;這是賦值。

27.explicit關鍵字,C++中, 一個參數的構造函數, 承擔了兩個角色。 1 是個構造器 2 是個默認且隱含的類型轉換操作符。所以, 有時候在我們寫下如 AAA = XXX, 這樣的代碼, 且恰好XXX的類型正好是AAA單參數構造器的參數類型, 這時候編譯器就自動調用這個構造器, 創建一個AAA的對象。

28.關于在子類的初始化列表中調用父類的構造函數,比方說你想記錄股市交易日志。
class Transaction{public:Transaction(); virsual void logTransaction() const=0//根據是買還是賣做一份日志};
Transcation::Transaction(){logTransaction();}
class BuyTransacton:public Transcation{virtual void logTransaction()const};
class SellTransaction:public Transcation{virtual void logTransaction()const};
現在,當我用BuyTransaction bs;時由于父類構造函數是最先調用的,父類構造函數里面調用的logTransactoin()就不會是子類版本,在base class構造期間,virtual是不會降到derived class階層的.這時的解決方法就是不使用virtual,而子類的構造函數將把參數傳給父類的構造函數:
class Transaction{public:explicit Transaction(string &loginfo);void logTransaction(string &loginfo)const;};
Transaction:Transaction(string &loginfo){logTransaction(loginfo);}
class BuyTransaction:public Transaction{public Buytransaction():Transaction(para)};

29.如果類中有虛函數,請將析構函數也設為虛函數,保證父類與子類能正確調用析構。當基類設為虛函數后,該類的子類及子子類都是虛函數。

30.除了內置類型外,別的類型盡量用引用傳遞參數,而不是值傳遞,特別是將子類傳遞給一個父類為參數的函數時,將被切除特化信息(好象是指多態功能丟失)。

31.當子父有著與父類同名的函數,那父類函數就被隱藏了(即使有不同參數),如想不隱藏,則要在子父里面using 父類。public: using Base::mf1;using Base::mf3;

32.虛函數盡量聲明為私有或保護型。子類可以繼承私有虛函數的。私有繼承的虛函數, 其訪問權限可由派生類指定.

33.if(i=0) 為假,if(i=1)為真

34.uchar *c;c+=2;指針向右移動二位,c[1];//這里取的內容為第三位置的內容.

?

轉載于:https://www.cnblogs.com/i-jie/archive/2009/05/30/1492343.html

總結

以上是生活随笔為你收集整理的C++ 笔记点滴的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。