派生类不能访问父类方法
Derived Class cannot access Parent class method
当我尝试这样编译代码时,我得到一个错误"类派生没有名为'getX'的成员":
class Base
{
public:
int getX() {return x};
protected:
int x;
};
class Derived : public Base
{
public:
void myFunction(){int y = getX()};
};
我设计这个例子是为了帮助澄清,因为当我的派生类试图使用它应该继承的父类的方法时,我得到了很多这样的错误。我试过在方法调用之前使用"this"关键字,但这也不起作用。谢谢你的帮助。
修改代码
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
.
请阅读错误。这里调用基类函数没有问题。编译错误与语法错误有关。
参考下面的编译代码。
class Base
{
protected:
int x;
public:
int getX() {return x;};
};
class Derived : public Base
{
public:
void myFunction(){int y = getX();};
};
你应该使用更好的编码风格,这可能会解决一个问题。
代码:int getX() {return x};
实际上是:
int getX()
{
return x
};
如你所见,;
放错了位置。必须是:
int getX()
{
return x;
}
同样的问题出现在void myFunction(){int y = getX()};
行
花了几个小时试图编译代码后,我放弃了,并将所有父类的方法和成员复制到子类中。谢谢你的回答。
相关文章:
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 调用具有未标识类型的类的方法
- 是否可以使用基类非虚拟方法中的派生类虚拟方法?
- 如何访问存储在 std::variant 中的类的方法
- 如何将类成员方法的参数列表自动填充写入可变参数?
- C ++类型特征:确保子类实现方法
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 在父类中为多个子类定义方法
- 从 C++ 中的子类调用重载父类的方法
- 调用实际对象而不是父类的方法
- 在子类中实现继承类的方法(param=指向父级的指针)(param=指向子级的指针)
- 从父类调用方法
- 如何调用父类类型列表的子类的方法?C++
- 给父类指针调用子类的方法
- 在父类的向量上调用子类的方法
- c++中父模板类的重写方法是否可以调用父模板类的重写方法?
- 派生类调用父级的方法
- CLR 中的派生类是否可以拦截/隐藏父类的方法,同时仍保持智能感知?
- 对父类中方法的未定义引用
- 如何使父类的方法使用不同的变量