【发布时间】:2020-05-06 13:23:13
【问题描述】:
我想做这样的事情:
A.hpp:
template <class B>
class A{
B* B;
};
B.hpp:
template <class A>
class B{
A* a;
};
它总是失败..
【问题讨论】:
-
你能给我们一个minimal reproducible example 失败的地方吗?
-
你有一个循环依赖。您还应该考虑更改模板类型名,以免它们与实际的类名冲突。
-
A<B<A<B<A<B<..>>>>>> -
谢谢兄弟,我正在阅读那个主题@HTNW
-
注意到
template <class B> class A;中的B在class B之间与int n = 42; void f(int n);无关,因此您的代码按原样编译,class A和B是具有相似定义的类(仅更改成员名称)。
标签: c++