重新定义派生类的变量

Cem*_*ncu 1 c++ inheritance

以下是否有效?或者我怎样才能接近这一点.

template<class T_> class Template {
   //something
};

class Parent {
public:
   Template<Parent> variable;

   Parent() : variable(this) { }
};

class Derived : public Parent {
public:
   Template<Derived> variable;

   Derived() : Parent() { }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Ale*_*lli 6

这是技术上的"有效",在你的编译器必须接受它(它可以提醒你,恕我直言它应该),但它不会做你认为它:Derived的variable是分开Parent的,并没有得到明确的初始化(所以它使用默认的ctor Template<>).