gpt4 book ai didi

c++ - 使用姐妹继承

转载 作者:可可西里 更新时间:2023-11-01 18:39:44 30 4
gpt4 key购买 nike

让我们假设一些(遗留)代码,不能被触及,声明

struct B{
public:
void f(){}
};

让我们假设有

struct A{
public:
virtual void f()=0;
};

是否可以在不显式调用 f() 的情况下使 A 子类调用 B::f,即代替

  struct C: public A, public B{
void f(){
B::f();
}
};

有类似的东西

 struct C:virtual public A,virtual public B{

};

(注意最后一个类是抽象的,因为编译器 A::f 没有定义)

最佳答案

直接在 C++ 中,不可能基于 B 的函数与 A 的某些隐式匹配来进行多态分派(dispatch)。您可以使用 gccxml 或其他类似产品求助于某种代码生成,但是如果只有一百个函数,那么宏无论如何都可以减少转发到单行代码的次数——不值得引入额外的工具,除非您有成千上万的这些要做。

关于c++ - 使用姐妹继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083635/

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