gpt4 book ai didi

c++ - 如何在多重继承下继承一个基类的所有typedef?

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

假设我有两个带有一堆 typedef 的基类:

struct X {
typedef int type1;
typedef float type2;
// A bunch of other typedefs.
};

struct Y {
typedef long type1;
typedef char type3;
// Some other typedefs.
};

struct Z : public X, public Y {
};

如何指定我想让 Z 从 X 继承所有 typedef,而无需手动解决每种类型的冲突?我的意思是 O(1) 代码来实现这个而不是 O(n),其中 n 是冲突类型的数量。同样在元编程的情况下,人们不会知道 X 和 Y 中的确切类型定义,因此不可能手动解决冲突。

在单继承的情况下,会自动使用基类的typedef,不需要我手动指定。

最佳答案

嗯,它工作得很好。您只需要解决冲突。

struct X
{
typedef int type1;
typedef int type2;
};

struct Y
{
typedef double type1;
};

struct Z : public X, public Y
{
type2 z1;
typedef X::type1 type1;
type1 z2;
};

int main()
{
Z z;
Z::type2 x;
Z::type1 y;
}

关于c++ - 如何在多重继承下继承一个基类的所有typedef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497984/

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