我收到错误“类Derived没有名为'getX'的成员”当我尝试编译这样的代码时:
{{1}}
我设法这个例子来帮助澄清,因为当我的派生类试图使用它应该继承的父类中的方法时,我遇到了很多这样的错误。我在方法调用之前尝试使用'this'关键字,但这也不起作用。谢谢你的帮助。
答案 0 :(得分:2)
更正您的代码
class Base
{
public:
int getX() {return x; }
protected:
int x;
};
class Derived : public Base
{
public:
int myFunction(){int y = getX(); return y; }
};
为我编译
g++ -c -o /dev/null -Wall derive.c
答案 1 :(得分:1)
请阅读错误。这里调用基类函数没有问题。编译错误与语法错误有关。
请参阅下面的编译代码。
class Base
{
protected:
int x;
public:
int getX() {return x;};
};
class Derived : public Base
{
public:
void myFunction(){int y = getX();};
};
答案 2 :(得分:1)
您应该使用更好的编码风格,这可能会解决问题。
您的代码:
int getX() {return x};
实际上是:
int getX()
{
return x
};
如您所见;
放错了地方。必须是:
int getX()
{
return x;
}
同样的问题出在void myFunction(){int y = getX()};
行。
答案 3 :(得分:0)
在尝试编译代码几个小时之后,我就放弃并将所有父方法和成员复制到子类中。无论如何,谢谢你的答案。