不可用的公共变量

Not available public variable

本文关键字:变量      更新时间:2023-10-16
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。

还有,这是作业吗?这似乎是做作的。