在成員函式的形參後面寫上= 0 ,則成員函式為純虛函式。包含純虛函式的類叫做抽象類(也叫介面類),抽象類不能例項化出物件。純虛函式在派生類中重新定義以後,派生類才能例項化出物件。
#include
#include
using
namespace
std;
class person
protected :
string _name ; // 姓名
};class student : public person
};int main()
靜態資料成員為各個物件所共享,不只是屬於某一物件成員,所有物件都可引用
靜態資料成員記憶體只佔乙個空間
若只宣告了類未定義物件,則類的一般資料成員不佔空間,只有在定義物件時,才為物件的資料成員分配空間。在為物件分配空間的時候,不分配靜態資料成員的空間,靜態資料成員的空間在所有物件外單獨分配空間。
只要定義了靜態資料成員,即使不定義物件,也為靜態資料成員分配空間,可以被引用。
如果在乙個函式中定義了靜態變數,在函式結束時不釋放靜態變數,仍保留其值,靜態資料成員在程式編譯時分配空間,程式結束時釋放空間,靜態資料成員在類外初始化。
靜態資料成員實現物件間的資料共享,靜態資料成員的作用域僅限於該類的作用域。
靜態成員函式是類的一部分,不是物件的一部分。類外呼叫類名 ::函式。
靜態成員函式為了處理靜態資料成員
靜態成員函式沒有this指標
靜態成員函式可以直接引用本類的靜態資料成員。
**實現:
class person
static
void show()//靜態成員函式
protected:
string _name; // 姓名
public:
static
int _count; // 統計人的個數。
};int person::_count = 0;//靜態成員變數初始化
class student : public person
;class graduate : public student
;int main()
虛函式與純虛函式
1 基本形式 virtual returntype function 1 虛函式宣告 virtual returntype function 2 0 純虛函式宣告 先講示例吧,再總結結論。2 示例 classanimail 這段 的輸出結果是什麼呢?起初我認為是 animail function 1...
虛函式與純虛函式
參考 虛函式 比如 virtual void function1 virtual關鍵字修飾的 成員函式 就是虛函式。把基類的成員函式 設為virtual,其 派生類的相應的函式也會自動變為虛函式。指向 基類的指標在操作它的 多型類物件時,會根據不同的類物件,呼叫其相應的函式,這個函式就是虛函式。純虛...
虛函式與純虛函式
1 基本形式 virtual returntype function 1 虛函式宣告 virtual returntype function 2 0 純虛函式宣告 先講示例吧,再總結結論。2 示例 classanimail 這段 的輸出結果是什麼呢?起初我認為是 animail function 1...