在C++中,類的繼承不會繼承靜態(tài)成員。靜態(tài)成員屬于類本身,而不是類的實例。當你在派生類中聲明一個與基類相同的靜態(tài)成員時,它實際上是在派生類中創(chuàng)建一個新的靜態(tài)成員,而不是繼承基類的靜態(tài)成員。
以下是一個示例,說明如何在派生類中聲明與基類相同的靜態(tài)成員:
#include <iostream>
class Base {
public:
static int staticMember;
};
int Base::staticMember = 10; // 初始化基類的靜態(tài)成員
class Derived : public Base {
public:
static int staticMember; // 聲明與基類相同的靜態(tài)成員
};
int Derived::staticMember = 20; // 初始化派生類的靜態(tài)成員
int main() {
std::cout << "Base static member: " << Base::staticMember << std::endl; // 輸出 10
std::cout << "Derived static member: " << Derived::staticMember << std::endl; // 輸出 20
return 0;
}
在這個示例中,Base
類有一個名為 staticMember
的靜態(tài)成員,其值為 10。Derived
類繼承自 Base
類,并聲明了一個與基類具有相同名稱的靜態(tài)成員。這不會導(dǎo)致基類的靜態(tài)成員被繼承到派生類中,而是在派生類中創(chuàng)建了一個新的靜態(tài)成員,其值為 20。