非常快的问题,假设我有一个模板:
template <class T>
class foo {
private:
T SubFoo;
...
};
然后我有这样的东西:
foo < foo < int > > myFoo;
效果很好。在这种情况下,myFoo 将有一个名为 myFoo.SubFoo 的成员,其类型为 foo < int >
。 .
我想在 myFoo.SubFoo 中有一个指向 myFoo 的指针。我不知道如何正确调用它,一个指向整个母类 myFoo 的 SubFoo 的类成员指针。这可能吗?我试图包括声明:
template <class T>
class foo {
private:
...
T SubFoo;
foo< foo < T > >* p2mother;
...
};
但这似乎行不通。
一般来说,我所做的是建立一个递归结构。通过递归传递通信很容易,但我发现“向上”有麻烦。也许我一开始就错误地设计了这个。
非常感谢!
最佳答案
更一般的情况(这适用于 g++):
template <class T>
struct foo {
//...
T SubFoo;
foo* p2mother;
//...
};
foo< int > simple;
foo< foo< int > > complex;
int main() {
simple.p2mother = &simple;
complex.p2mother = &complex;
}
关于c++ - 包含自身实例化的模板,C++ 中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278135/