waa*_*919 0 c++ inheritance base-class derived-class
有什么办法可以让我derived class访问 的private成员,base class同时能够derived在base class内部的方法上创建对象base class?
像这样的东西:
class Derived;
class Base
{
public:
void func()
{
// I want to create the derived obj here
Derived derived;
derived.func();
}
public:
int mBase = 5;
};
class Derived : public Base
{
public:
void func()
{
// I need to have access to the private members of Base inside this method
mBase = 6;
}
};
Run Code Online (Sandbox Code Playgroud)
错误如下:
Error: derived uses undefined class Derived.
Run Code Online (Sandbox Code Playgroud)
我怎么能做这样的事情?
谢谢
为了能够使用Derived类并调用其中的成员函数(包括构造函数和析构函数),需要提供完整的定义。在这种情况下,它不在Base::func函数中。
解决方案很简单:不要定义func内联,只需声明它,然后Derived在定义类后实现(定义)它。