模板循环依赖关系问题
template circular dependency issue
当天的第二个模板问题,真是n00b:
我有一个模板类:
template <class T>
class foo{
private:
//...
T SubFoo;
//...
};
我还有一个名为myClass的课程。我想要这样的对象:
foo<myClass> myObject;
但是,问题是,我希望能够从myObject.SubFoo获得指向myObject的指针。这意味着类 myClass 的一个成员应该是模板类 foo 的实例化。
所以我可以做:
class myClass{
//...
foo<myClass>* point2myClass;
}
但是,这似乎不起作用,因为
./foo.h:103:错误:"foo::SubFoo"的类型不完整
定义 myClass 时,程序会找到以下行
foo<myClass>* point2myClass;
它进入foo的定义,它发现:
T SubFoo;
但是T,在本例中为myClass,尚未定义(这就是程序正在做的事情!),因此它不知道T是什么,因此出现了错误。
如果我交换声明的顺序,它也会失败,因为不会定义"foo"。
我怎样才能做到这一点??
谢谢一百万!
下面的代码,应该可以正常工作。如果您的代码不同,请指定位置。
template < typename T >
struct A
{
T x;
};
struct X
{
A<X>* x;
};
int main()
{
X a;
}
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 在包含窗口标头时难以解决循环依赖关系问题
- C++ 中的循环依赖关系问题
- "std::shared_ptr"循环依赖关系是如何导致问题的
- C 如何在Typedef模板和类之间修复依赖关系问题
- WindowsCE 依赖关系问题随着算法的变化而消失
- 视觉C++在解决循环依赖关系时遇到了设计问题
- 模板循环依赖关系问题
- 模板类依赖关系问题