C 物件導向 20 繼承中同名靜態成員的訪問方式

2021-10-06 05:22:58 字數 1046 閱讀 5544

1.靜態成員變數的特點

1)所有物件共享乙個變數

2)編譯階段就分配記憶體

3)類內宣告,類外初始化

2.靜態成員屬性訪問方式

**和前面一篇差不多,就是加了關鍵字static修飾,注意下面類內宣告,類外初始化 這個靜態變數的特點。

#include using namespace std;

class base ;

int base::m_a = 100; //類外初始化

class sun : public base ;

int sun::m_a = 200;

//同名的靜態成員屬性

void test01()

int main()

編譯和執行上面**,輸出如下

其實通過子類物件訪問是我們常用的方法,還可以通過通過類名訪問

//同名的靜態成員屬性

void test01()

3.同名靜態方法的訪問直接來看**,看看同名的靜態方法訪問方式。

#include using namespace std;

class base

};class sun : public base

};//同名的靜態成員方法

void test01()

int main()

上面訪問父類的靜態方法都是通過作用域,和上面靜態成員變數一樣。

總結同名靜態成員處理方式和非靜態處理方式一樣,只不過有兩種訪問方式(通過子類物件和通過類名直接訪問)。

C 繼承方式 繼承中的物件模型 繼承中的同名處理

繼承方式 共有繼承 保護繼承 私有繼承 繼承中的物件模型,子類會繼承基類全部內容,而且包括私有成員,但是編譯器不會讓我們看到。繼承中的同名處理 同名的屬性 呼叫子類屬性時會預設呼叫子類的,如果想訪問父類的屬性,則需要呼叫父類然後用作用域運算子得到父類屬性。同名的方法 呼叫子類的方法時會預設隱藏父類的...

c 物件導向 繼承

三 繼承 1.繼承的型別 實現繼承和介面繼承 2 介面繼承 表示乙個型別只繼承函式的簽名,沒有繼承任何實現 在需要指定該型別具有某些可用的特性時,最好使用這種型別的繼承。2.多重繼承 c 不支援多重繼承,為簡化 的繁瑣,可以允許型別派生自多個介面 多重介面繼承。這說明c 可以派生自另乙個類和任意多個...

C 物件導向 繼承

一 通過繼承 inheritance 可以在建立新類時復用 擴充套件和重寫已在其它類中宣告的可訪問的例項成員 除建構函式和析構函式外 類完全支援繼承,可以繼承自類也可以實現介面,結構不支援繼承,只可以實現介面 繼承是通過派生 derivation 實現的,被繼承的類稱為基類 base class 繼...