虛函式:
在類的繼承層次結構中,在不同的層次中可以出現名字相同,引數個數和型別都相同而功能不同的函式。編譯器根據同名覆蓋原則決定呼叫的物件。例如派生類物件cy1.area()呼叫的是派生類的成員函式area(),要想使用派生了物件呼叫基類的area函式,需使用cy1.circle::area(),指明area()函式所屬類。這種方法可以區分兩個同名的函式,但很不方便。
為了能夠使用同一種呼叫形式既能呼叫派生類又能呼叫基類的同名函式,使用虛函式,這樣我們就可以通過基類指標的動態繫結呼叫不同派生層次的函式。只需要在呼叫前給基類指標變數賦予不同的值(使之指向不同的類物件)。參考這兒。
將基類的析構函式宣告為虛函式的作用:例如 當new了乙個派生類物件並賦值給基類指標時,base* p=new derive(),若基類的析構函式不是虛函式,當使用delete釋放記憶體時,只會呼叫基類的析構函式,派生類的建構函式將不會被呼叫(非動態繫結),導致記憶體洩露。
用途:(1)限制變數的作用域;
(2)設定變數的儲存域。
const int a; // a 為整型常量
int const a; // 與 const int a 相同
const int *a; // a 為乙個指向整型常量的指標(整型量不可修改,指標可修改)
int * const a; // a 為乙個指向整型數的常指標(整型數可修改,指標不可修改)
int const * a const; // a為乙個指向整型常量的常指標(整型數不可修改,指標不可修改)
// 注意:若賦值必須是整數
enum roster ; // 定義列舉型別
roster student; // 定義列舉變數
student = sharon; // 列舉變數賦值
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...
base關鍵字 this關鍵字
用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式 例項方法和例項屬性訪問器中。功能主要包括 1 呼叫基類上已被其他方法重寫的方法。2 指定建立派生類例項時應呼叫的基類建構函式。base常用於,在派生類物件初始化時和基類進行通訊。base可以訪問基類的公有成員和受保護成員,私有成...