【发布时间】:2013-05-30 08:53:57
【问题描述】:
我有 2 节课(尽可能简单自愿),我正在与 Qt 合作 Mac OS X:
//Class A
class A
{
protected:
int getX(){return _x;};
private:
int _x;
};
//Class B
class B : A
{
void method(){qDebug() << this->getX();}
};
编译器抛出:
错误:“getX”是“A”的私有成员
我错过了什么吗? 我试过了:
qDebug() << this->A::getX();
这也不起作用!
【问题讨论】:
-
您好像在
class B: **public A**中忘记了public。 -
来吧,发布一个真实代码!你的 sn-p 甚至没有编译!
-
我不会为一个在 3 分钟内得到 5 个答案的问题发布 200 条无用的行...
-
@gx_ 它无法编译,他问为什么它不是以及如何修复它。
-
@Daniel 由于 other 错误而无法编译,而不是“'getX' is a private member of 'A'”:
int getX(){return _x};应该是int getX(){return _x;},this.getX()应该是this->getX()(OP 之后编辑),并且两个类定义在右大括号后都缺少一个分号。在这些更正之后(并将qDebug()替换为cout或您可以包含的任何内容),代码编译并且 not 给出引用的错误。
标签: c++ inheritance