C++学习小记录
1)switch括號中的表達式只能是整型、字符型或枚舉型,case :中的表達式類型必須與之相對應;在帶有break的情況下,各個case(包括default)出現的次序并不影響執行結果;
2)int 32位;float 32位;double 64位;
3)頭文件中的string與string.h是不同的資源,string是指string字符串類,string.h是諸多字符串空間操作的庫函數集合;
4)cin遇到空格或是回車符就終止輸入,因此在輸入字符串時一般不用cin,而是用getline(cin/in, s)。若是要將輸入的一行字符串以空格為間隔符分開,則引用istringstream創建對象。
5)程序運行時的進程空間:棧區,堆區,全局數據區,代碼區。 棧區:存放函數數據區(即局部數據區),它動態地反映了程序運行中函數狀態,其運動軌跡正好用來觀察函數的調用與返回,從而研究其函數機制;堆區:存放動態內存,供程序隨機申請使用;全局數據區:存放全局數據、常量、文字量、靜態全局量和靜態局部量;代碼區:存放程序的執行代碼。
6)函數重載:在同一作用域內,可以有一組具有相同函數名,不同參數列表的函數,這組函數被稱為重載函數。函數重載對于普通函數和類的成員函數同樣適用。(類的成員函數的重載必須是在同一個類中)
? ? 函數覆蓋:覆蓋是指派生類中存在重新定義的函數,其函數名、參數列、返回值類型必須同父類中的相對應被覆蓋的函數嚴格一致,覆蓋函數和被覆蓋函數只有函數體不同。當派生類對象調用子類中該同名函數時會自動調用子類中的覆蓋版本,而不是父類中的被覆蓋函數版本,這種機制就叫做覆蓋
? ? 函數隱藏:是指派生類的函數屏蔽了與其同名的基類函數。
成員函數被重載的特征:
(1)相同的范圍(在同一個類中);
(2)函數名字相同;
(3)參數不同;
(4)virtual 關鍵字可有可無。
覆蓋:派生類函數覆蓋基類函數,特征是:
(1)不同的范圍(分別位于派生類與基類);
(2)函數名字相同;
(3)參數相同;
(4)基類函數必須有virtual 關鍵字。
函數隱藏的特征
(1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏(注意別與重載混淆)。
(2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)。
*函數的隱藏和覆蓋在調用時的處理方式是不同的,具體的可通過樣例體會
?
轉載于:https://www.cnblogs.com/LittleRea/p/6885479.html
總結
- 上一篇: 标准C程序设计七---53
- 下一篇: c++ vector注意事项