一个非常快速的问题,假设我有一个模板:

template <class T>
class foo {

 private:
   T SubFoo;
  ...

};

然后我有类似的东西:
 foo < foo < int > > myFoo;

效果很好。在这种情况下,myFoo将具有一个名为myFoo.SubFoo的成员,该成员的类型为foo < int >

我想在myFoo.SubFoo中有一个指向myFoo的指针。我不知道如何正确地调用它,SubFoo的类成员指针指向整个母类myFoo。这可能吗?我试图包括该声明:
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;
}

08-27 02:26