C static 的訪問和繼承

2021-10-09 10:17:31 字數 546 閱讀 4270

本文只討論靜態成員變數,不討論靜態成員函式

類中,靜態成員變數被所有類的物件共享,(共享就是即使類的其中乙個物件修改了該靜態成員變數,那麼類的其他所有物件再訪問該靜態成員變數時,就是修改後的值),所以可以認為該靜態成員變數是屬於該類的,而不屬於某乙個物件,且需要在類外被初始化,編譯時就被建立並初始化;

靜態成員函式只會被呼叫一次

假如現有類a中定義了靜態成員static int number 並在類外被初始化為10;b類繼承了a類。main函式中 先例項化了類a的物件a,然後修改了number的值,此時類b的例項化物件可以訪問number嗎?如果可以,訪問到的值時多少?

#include

using

namespace std;

classa;

int a::number =10;

classb:

public a

;int

main()

可見static 成員變數被繼承後仍然被類的物件共享,只有乙份。

繼承方式和訪問控制

include stdafx.h include using namespace std 類內部的private protected public 影響訪問許可權 繼承中 private protected public,影響父類中的成員在子類中的訪問許可權,不影響子類現有的成員訪問方式 99 只使...

c 訪問控制和繼承

表示訪問控制和繼承 派生類可以訪問基類中所有的非私有成員。因此基類成員如果不想被派生類的成員函式訪問,則應在基類中宣告為 private。乙個派生類繼承了所有的基類方法,但下列情況除外 基類的建構函式 析構函式和拷貝建構函式。基類的過載運算子。基類的友元函式 1,繼承自乙個基類時格式為 class ...

繼承的訪問控制 私有繼承

在私有繼承中,派生類以私有方式繼承基類。基類的公有成員和保護成員在派生類中成為私有成員,它們能被派生類的成員函式直接訪問,但不能被類外函式訪問,也不能在類外通過派生類的物件直接訪問。派生類不能直接訪問基類的私有成員,而只能派生類的成員函式中通過基類的公有或保護成員函式間接訪問。在設計基類時,通常都要...