我在類A中的靜態成員變量和B類從類A.靜態成員是否被繼承?
class A
{
public:
A()
{
a = 3;
}
static int a;
};
int A::a = 0;
class B : public A
{
public:
B()
{
a = 4;
}
};
void main()
{
A objA;
cout << "Before:" << A::a;
B obj;
cout << endl << "After:" << A::a;
}
導出作爲每Are static fields inherited?當派生類型對象由那麼它也產生基本類型。 我有以下問題:
它是如何,而不是
A::a
我也可以訪問objA.a
?不應該通過該類的對象訪問靜態變量。如果對於派生類還創建了一個新的靜態變量(特定於
class B
),那麼爲什麼沒有必要初始化class B
的靜態變量?爲什麼輸出下面所示:
前:3
後:4
當預計將顯示3之前和之後?
標題的答案取決於您對術語*定義的定義*是。 – 2013-05-08 17:22:56