C++ 圆型
此代码无法编译:C++ 圆型,c++,typedef,circular-dependency,C++,Typedef,Circular Dependency,此代码无法编译: class B; class A{ typedef int AThing; typedef B::BThing BThing; }; class B{ typedef int BThing; typedef A::Athing AThing; }; 因为A需要B中的typedef,B需要A中的一个 使用具有循环依赖性的typedef的典型方法是什么?具有此类循环typedef依赖性的典型解决方案是不具有此类循环typedef依赖性。这些类型的循环 TyPulf
class B;
class A{
typedef int AThing;
typedef B::BThing BThing;
};
class B{
typedef int BThing;
typedef A::Athing AThing;
};
因为A
需要B
中的typedef
,B
需要A
中的一个
使用具有循环依赖性的typedef的典型方法是什么?具有此类循环
typedef
依赖性的典型解决方案是不具有此类循环typedef
依赖性。这些类型的循环<代码> TyPulfF依赖关系不能在C++中完成,因此必须重新排列类层次结构:
class B;
typedef int this_is_a_BThing;
class A{
typedef int AThing;
typedef this_is_a_Bthing BThing;
};
class B{
typedef this_is_a_BThing BThing;
typedef A::Athing AThing;
};
具有此类循环
typedef
依赖项的典型解决方案是不具有此类循环typedef
依赖项。这些类型的循环<代码> TyPulfF依赖关系不能在C++中完成,因此必须重新排列类层次结构:
class B;
typedef int this_is_a_BThing;
class A{
typedef int AThing;
typedef this_is_a_Bthing BThing;
};
class B{
typedef this_is_a_BThing BThing;
typedef A::Athing AThing;
};
使用具有循环依赖性的typedef的典型方法是什么
没有这种典型的方法,你不能这样做
有关如何在类型范围内使用前向声明和扩展依赖TypeDef的案例,请参阅中的答案
在类范围中引入typedef
的情况与编译器无法通过看到转发声明来解析它这一事实无关
我能想到的使用typedefs的唯一方法是使用,并且实际上只在实现中引入它们 使用具有循环依赖性的typedef的典型方法是什么 没有这种典型的方法,你不能这样做 有关如何在类型范围内使用前向声明和扩展依赖TypeDef的案例,请参阅中的答案 在类范围中引入
typedef
的情况与编译器无法通过看到转发声明来解析它这一事实无关
我能想到的使用typedefs的唯一方法是使用,并且实际上只在实现中引入它们。这太糟糕了……哦,好吧,太糟糕了……哦,好吧,这不是重复的……这是一个单独的问题这不是重复的……这是一个单独的问题,完全不是重复的IMO,这里没有标题包含,更不用说标题中的循环依赖项了,不知道为什么我不能回答,所以我会在这里回答。这绝对不是重复,而且确实是一个相当困难的问题!这种情况可以通过添加一个以上级别的间接寻址来解决:。“我面临着同样的情况,我现在正在寻找更一般、更有用的解决方案。@Trolliar这是一个解决这个问题的有趣方法。.不是重复的IMO,这里没有标题包含,更不用说标题包含中的循环依赖项了。不知道为什么我不能回答,所以我会在这里回答。”。这绝对不是重复,而且确实是一个相当困难的问题!这种情况可以通过添加一个以上级别的间接寻址来解决:。“我面临着同样的情况,我现在正在寻找更普遍、更有用的解决方案。”特罗利亚尔这是解决这个问题的一个有趣的方法。。