我在 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;
}
根据静态字段是否继承?当创建派生类型对象时,它也会创建基类型。我有以下问题:
怎么不是
A::a
我也可以访问objA.a
?不应通过该类的对象访问静态变量。如果对于派生类也创建了一个新的静态变量(特定于
class B
),那么为什么不需要初始化静态变量class B
呢?为什么以下输出显示为:
之前:3
之后:4
预计什么时候会在前后显示 3?