【发布时间】:2012-08-28 13:47:54
【问题描述】:
template <class T=A>
struct B {
T a;
};
struct A {
B<A> foo(){
B<A> result;
return result;
}
};
如何避免使用模板(注意默认参数以查看其用法)。 问题是这两个类都需要彼此的定义。但正如模板解决方案所示,没有“真正的”循环依赖。
【问题讨论】:
-
在 DevStudio 2005 中对我来说编译得很好。不要忘记模板在使用时被实例化,而不是在声明时被实例化。
-
是的,上面的解决方法确实有效。删除模板不会。