class Base{
public:
void func(){
// something
}
};
class Derived : public Base{
public:
void func(){
Base::func(); // just use the base class name
}
};
Run Code Online (Sandbox Code Playgroud)
虽然我认为这不是你想要的,你想要每个类的通用访问?我不知道直接解决方案,但您可以随时使用typedef
您的直接基类:
class Derived : public Base{
typedef Base super; // typedef accordingly in every class
public:
void func(){
super::func();
}
};
Run Code Online (Sandbox Code Playgroud)
如果你真的想要,甚至可以为typedef设一个中间类.
template<class Base>
struct AddSuper : public Base {
protected:
typedef Base super;
};
class Derived : public AddSuper<Base> {
public:
void func(){
super::func();
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,您不应忘记在每个派生类中重新键入def,否则您的调用链中会出现漏洞.
一个缺点:整个构造爆发了多个基类.:/