gpt4 book ai didi

c++ - 是否可以实现 __super 宏?

转载 作者:太空狗 更新时间:2023-10-29 23:31:20 24 4
gpt4 key购买 nike

请告诉我是否有办法手动实现 Microsoft 特定的 __super 宏...

最佳答案

class Base{
public:
void func(){
// something
}
};

class Derived : public Base{
public:
void func(){
Base::func(); // just use the base class name
}
};

尽管我假设这不是您想要的,并且您希望每个类都具有通用访问权限?我不知道直接的解决方案,但你总是可以 typedef 你的直接基类:

class Derived : public Base{
typedef Base super; // typedef accordingly in every class
public:
void func(){
super::func();
}
};

如果你真的想要,甚至可以为 typedef 设置一个中间类..

template<class Base>
struct AddSuper : public Base {
protected:
typedef Base super;
};

class Derived : public AddSuper<Base> {
public:
void func(){
super::func();
}
};

请注意,您不应该忘记在每个派生类中重新定义类型,否则您的调用链会出现漏洞。

一个缺点:整个构造因多个基类而爆炸。 :/

关于c++ - 是否可以实现 __super 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6041100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com