template <typename T>
class Foo {
T tVar;
public:
Foo(T t):tVar() {}
};
class FooDerived: public Foo<std::string> {};
FooDerived fd;
这段代码有什么问题?
答案 0 :(得分:7)
问题是Foo没有空的C'tor - Foo(void),而FooDerived正试图用空的C'tor初始化Foo(因为它是默认的..)所以你会得到一个编译错误,因为编译器不知道如何创建DerivedFoo()