[轉(zhuǎn)] C++語錄 - 基本教義派
1。如果C函數(shù)的參數(shù)為空,其原形必須含關(guān)鍵字void,而c++可有可無!
2。函數(shù)之所以可以能遞歸,是因?yàn)槊總€(gè)函數(shù)被調(diào)用時(shí),都會(huì)把參數(shù)和其他的局部對(duì)象復(fù)制到一塊專用的內(nèi)存區(qū)域,而且同一個(gè)函數(shù)的每一個(gè)執(zhí)行進(jìn)程都有一個(gè)單獨(dú)的復(fù)制
3。exter "c"
{??????????????????????????????// 這是個(gè)連接說明
?#include "mychdr.h"? // 告訴c++ 庫 這是個(gè)用C編譯的函數(shù)
}
4。C++采用名字重組技術(shù),給編譯器內(nèi)部的函數(shù)標(biāo)識(shí)符重命名,重組的函數(shù)名包含了指定函數(shù)的返回植類型和參數(shù)類型的符號(hào)!
5。自動(dòng)儲(chǔ)存的類型修飾符指定一個(gè)局部變量是自動(dòng)的,即每次執(zhí)行到定義該變量的語句塊時(shí),都將為該變量在內(nèi)存中產(chǎn)生一個(gè)新的副本,并對(duì)其進(jìn)行初始化。
6。靜態(tài)儲(chǔ)存類型初始化值只在語句塊第一次執(zhí)行時(shí)其作用,在隨后的運(yùn)行過程中,變量將保持語句塊上一次執(zhí)行的值!
7。static 儲(chǔ)存類型修飾符使得函數(shù)和變量的標(biāo)識(shí)符對(duì)于連接到同一個(gè)程序的其他源代碼文件而言是不可見的。
8。寄存器變量的地址是無法取得的,因?yàn)榇蠖鄶?shù)計(jì)算機(jī)的硬件寄存器都不占內(nèi)存地址。
9。C++程序中,默認(rèn)情況下,函數(shù)的所有參數(shù)都是以傳值方式,即把實(shí)參的一個(gè)副本復(fù)制到被調(diào)用函數(shù)的形參中。
10。在編譯器內(nèi)部,用一個(gè)字符數(shù)組來表示字符串常量,對(duì)字符串的使用實(shí)際上就是在引用它的內(nèi)部地址,所以把字符串給字符型指針實(shí)際上就是把常量的地址賦給指針!
11。當(dāng)函數(shù)的形參是指向非const 型變量的指針時(shí),不能用const型變量的地址做形參!
12。任何地址都可以賦值給void 型指針,C++允許任何類型的指針自動(dòng)轉(zhuǎn)換成?void型!
13。typedef 的作用是給一個(gè)已存在的類型起個(gè)別名!
14。指針是儲(chǔ)存地址的變量,地址是相對(duì)較小的數(shù)據(jù)單元(在32機(jī)系統(tǒng)中占四個(gè)字節(jié))它儲(chǔ)存另一個(gè)數(shù)據(jù)的地址!
15。# undef 預(yù)處理指令使得以定義的宏在以后的代碼中無效!
16。不帶參數(shù)或所有參數(shù)都有默認(rèn)值的構(gòu)造函數(shù)叫做默認(rèn)構(gòu)造函數(shù),實(shí)例化對(duì)象數(shù)組必須有默認(rèn)的構(gòu)造函數(shù);如果類中之少有一個(gè)構(gòu)造函數(shù),編輯器將不在提供默認(rèn)的構(gòu)造函數(shù)!
17。靜態(tài)成員只能在類中申明,必須在類外定義,并且靜態(tài)成員只能存在唯一一個(gè)實(shí)例,即使沒有任何類的實(shí)例,靜態(tài)成員也是已經(jīng)存在的,類的所有實(shí)例都可以使用他,他屬于整個(gè)類!
18。靜態(tài)成員函數(shù)與一般成員函數(shù)的區(qū)別:靜態(tài)成員函數(shù)沒有this指針,因此他無法訪問非靜態(tài)成員!一般的成員函數(shù)隱含this指針
19。初始化和賦值的區(qū)別是:初始化是創(chuàng)建一個(gè)新的對(duì)象,然后用已有的的對(duì)象去初始化,賦值是兩個(gè)都存在的對(duì)象!
20。常量數(shù)據(jù)成員和引用數(shù)據(jù)成員必須使用構(gòu)造函數(shù)的參數(shù)初始化表來初始化,而不能賦值!
21。對(duì)象被申明為常量,那么該對(duì)象就不可以調(diào)用類中任何非常量型的成員函數(shù)。
22。mutable 修飾符申明的數(shù)據(jù)成員,這樣一個(gè)常量型的成員函數(shù)就可以修改它的值!
23。class member以他們?cè)赾lass?內(nèi)的申明次序來初始化和他們?cè)趍ember initialization list 中出現(xiàn)的次序無關(guān)!
24。string &operation =(const string & rhs);// 意思是將一個(gè)常 string? 指定給另一個(gè)string?
25。string &operator =(const char *rhs);//意思是將一個(gè)常 char * 指定給一個(gè)string?
26。避免傳回內(nèi)部數(shù)據(jù)的handls;
27。public繼承是一種( isa),所以任何事情只要對(duì)base class? 而言是真,就一定對(duì)其 derived class? 為真。
28。純虛函數(shù)的兩個(gè)接口,他們必須被任何“繼承了他們”的子類重新申明,他們?cè)诔橄箢愔型ǔ]有定義!
29。純虛函數(shù)的申明主要是為了讓derived class 繼承函數(shù)的接口;
?????????虛函數(shù)的申明主要是為了讓derived class 繼承函數(shù)的接口及其缺省行為
??????? 成員函數(shù)(非虛)的申明主要是為了讓derived class 繼承函數(shù)的實(shí)現(xiàn),表示在 derived? class 中希望不要有不同的行為,即不要重新定義繼承而來的非虛成員函數(shù)!
30。絕對(duì)不要重新定義繼承而來的參數(shù)值,因?yàn)樘摂M函數(shù)系動(dòng)態(tài)綁定,而缺省參數(shù)卻是靜態(tài)綁定的!
31。對(duì)象的靜態(tài)型別是程序申明它時(shí)所采用的型別。對(duì)象的動(dòng)態(tài)型別是指對(duì)象目前所代表的型別,表現(xiàn)出一個(gè)對(duì)象的行為模式!
40:getlin(s,bufsize)表示讀取bufsize-1個(gè)字符給s如果遇到換行符就停下來,添加一個(gè)空字節(jié),丟棄換行符!
41。編輯器將空白字符默認(rèn)為分隔符。
42。不允許重載系統(tǒng)中預(yù)定義的操作,因此重載操作中至少有個(gè)操作數(shù)是用戶自定義類型!
43。全局const申明默認(rèn)情況下是內(nèi)部連接,而在c 中他們是外部連接,如果希望一個(gè)const 對(duì)象具有外部連接特性,就必須使用關(guān)鍵字“extern”
44.除了寄存器變量以外,程序中的所有對(duì)象都存在內(nèi)存中的。
45。在c++中給void型指針賦值時(shí),不用強(qiáng)制類型轉(zhuǎn)換是一種錯(cuò)誤!