1.類有預設複製建構函式預設建構函式是淺拷貝的,複製後兩個物件指向乙個記憶體空間
2.自己寫的類的複製建構函式不一定能做到複製功能 看自己怎麼寫了。(說明複製建構函式不一定就能起到複製的作用!!)
3.複製建構函式起作用的三種情況:
(1)用乙個物件初始化另外乙個物件
(2)如果有個函式的引數是類a的物件,那麼該函式被呼叫時,類a的複製建構函式將被呼叫
(3)如果函式返回值是類a的物件,函式返回時,a的複製建構函式將被呼叫。
4.型別轉換建構函式 可以轉型別賦值
5.sizeof不計算靜態成員變數。
6.必須在定義類的檔案中對靜態成員變數進行一次說明或初始化。否則編譯能通過,鏈結不能通過!
7.靜態成員函式中,不能訪問非靜態成員變數,也不能呼叫非靜態成員函式。
8.在建構函式中要是有對靜態成員變數的操作,則有必要注意複製建構函式最好也自己寫,加上靜態成員變數的相應操作語句(一般都是必要的)。
三種情況必須在類建構函式初始化列表初始化(資料整理)
關於類的建構函式,可以分為兩個部分,初始化部分(初始化列表)和計算部分(花括號間的賦值運算),在花括號作用域間進行的運算不是初始化,而是賦值。
對於必須在定義時初始化的情況在類建構函式中也是相同的
總結如下:
1、const成員:常量,不能被改變,定義的同時必須初始化
3、沒有預設建構函式供系統自動呼叫:
(1)物件成員:a類的成員是b類的物件(即a是封閉類),在構造a類時需對b類的物件進行構造,
當b類沒有預設建構函式時需要在a類的建構函式初始化列表中對b類物件初始化
(2)類的繼承:派生類在建構函式中要對自身成員初始化,也要對繼承過來的基類成員進行初始化,當基類沒有預設建構函式的時候,通過在派生類的建構函式初始化列表中呼叫基類的建構函式實現
非晶態成員函式中可以直接使用this指標來指代該函式作用的物件的指標。比如,可以在乙個成員函式當中通過return *this 來返回函式作用的物件。
除了常量變數外還可以寫常量物件,常量成員函式。
常量物件很好理解,不能修改物件的值。常量成員函式(const加在類的成員函式說明的後面)不能呼叫同類的非常量成員函式(靜態成員函式除外),不能修改其所作用的物件(靜態成員變數除外)。
物件作為函式引數時,生成該引數需要呼叫複製建構函式,效率低。故,經常用常引用來解決,提公升效率的同時,保證了物件不會被修改。
派生類的寫法: class 派生類名:public 基類名
基類的protected成員可以被下列函式訪問
·基類的成員函式
·基類的友元函式
·派生類的成員函式可以訪問當前物件的基類的保護成員
MySql操作要點整理
tinyint 1 位元組 smallint 2 個位元組 mediumint 3 個位元組 int 4 個位元組 integer 4 個位元組 bigint 8 個位元組 float x 4 如果 x 24 或 8 如果 25 x 53 float 4 個位元組 double 8 個位元組 dou...
Effective C 要點整理(一)
c 曾明確指出,當派生類 derived class 物件經由乙個基類 base class 指標被刪除,而該基類還帶著乙個non virtual析構函式,其結果未有定義 實際執行時通常發生的是物件的派生成分沒被銷毀。而其基類成分通常會被銷毀,於是造成乙個詭異的 區域性銷毀 物件。這會造成資源洩露 ...
uboot的啟動要點整理
對於ppc e500mc而言,從上電的一開始,cpu有預設配置的tlb位址空間,cpu執行的第一條指令一定在這個空間內,這樣虛擬位址才能轉換為實體地址,然後還有啟動的law local access window 預設配置 從實體地址到器件 比如cpu的片選cs0會選擇norflash,然後預設的l...