我问这个问题是为了讨论。
假设我有流动的类层次结构
class A
{
public:
static int varr;
}
class B : public A
{
}
Class C : public A
{
}
如果我创建 B b1,b2,b3;
和 C c1,c2,c3;
和 A a1, a2;
的对象>
1. varr
是否会在上述所有对象之间共享,或者不同的对象会有单独的实例?
2.如果 b1
对象改变了它会反射(reflect)给 c1
对象的值。
最佳答案
是的,它将在所有派生类(B,C)和基类(A)的所有实例中共享。
只会为静态对象创建一个实例,并且在所有地方都会引用该对象。因此,如果您在一个地方进行更改,则意味着更改将反射(reflect)在其被引用的所有位置。
关于c++ - 具有继承的静态变量的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817200/