Class Base() {
protected:
void foo();
}
Class Derived : public Base {
void bar();
}
void Derived::bar(){
foo(); //this causes an error.
}
Run Code Online (Sandbox Code Playgroud)
我知道我可能错过了一些明显的东西,但我已经绕圈了一个小时.如何在派生类中调用受保护的函数?
注释中出现的错误是链接器错误,所以你检查过:
class Base {
protected:
void foo() {
std::cout 没有更多信息,很难再说出来了.
class 是小写的; 课后定义以下代码适用于(直到它到达链接器)g++ version 4.9.0:
class Base {
protected:
void foo();
};
class Derived : public Base {
void bar();
};
void Derived::bar(){
foo();
}
Run Code Online (Sandbox Code Playgroud)