我在类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