public(公有):可被任何函數及類訪問
private(私有):無法被非友元的外部函數及類訪問;
protected(保護):只能夠被自身及子類訪問;
class按有無成員指針可分為Class with pointer member(s)與Class without pointer member(s)兩種,前者成員指針如在使用過程中新分配了內存並在類生命周期結束後沒有pointer指向這個內存遍需要在類的析構函數中釋放這個內存,否則這片內存在程序結束前便會一直被占用,造成內存洩露.
Heard file中需要進行防衛式聲明宏定義,否則將可能導致頭文件重復被包含,絕大多數編譯器支持
#ifndef NAME #define NAME ...... #endif
部分新版本編譯器則支持 #pragma once 的寫法.
函數內聯能夠增加程序運行速度但會降低編譯速度並增加目標程序總代碼量適合用於頻繁調用且代碼短小的函數.
類結構體內聲明並定義的函數將優先內聯,class結構體外定義的函數則需要在聲明前加上inline關鍵字,函數最終是否內聯取決與函數實際代碼量與編譯器的判斷.
ctor與dtor在類生命周期開始與結束時會各被調用且只會被調用一次,默認無代碼的ctor與dtor分別執行類成員的內存分配與釋放,ctor可以傳入參數並重載,dtor則不行.
ctor通常指定為public,當無public的ctor時外部將無法顯示的新建實例,可通過類中public的函數得到並限制實例的創建.
傳遞與返回參數的&(引用)通常能夠增加傳遞速度,相比傳遞任何實例時都只會傳遞實例的首地址並自動解引用.
A:重載的操作符在類體中被聲明,聲明方式如同普通成員函數一樣,只不過他的名字包含關鍵字operator,以及緊跟其後的一個c++預定義的操作符. class perason{ bool operator > (type right);... }
B:操作符重載實現為非類成員函數(全局函數)對於全局重載操作符,代表左操作數的參數必須被顯式指定. bool operator > (type left,type right);