<分区>
class A()
{};
class B : public A()
{public:int x};
int main()
{
A* test = new B();
test->x = 1;
return 0;
}
为什么 x 不可用?我该如何解决?谢谢。
<分区>
class A()
{};
class B : public A()
{public:int x};
int main()
{
A* test = new B();
test->x = 1;
return 0;
}
为什么 x 不可用?我该如何解决?谢谢。
最佳答案
因为编译器只检查类 A 的方法/成员中的 x。您已将其声明为 A,但它确实需要是 B,或者在您使用它时需要强制转换为 B。
另外,这是作业吗?这似乎是做作的。
关于c++ - 不可用的公共(public)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29186265/