标签: c++ class
class A() {}; class B : public A() {public:int x}; int main() { A* test = new B(); test->x = 1; return 0; }
为什么x不可用?我怎么能解决它?谢谢。
答案 0 :(得分:1)
因为编译器只在类A的方法/成员中检查x。你已经将它声明为A,它实际上要么是B,要么在你使用时需要转换为B.它。
另外,这是家庭作业吗?这似乎是做作的。