这个代码在c ++中有什么问题

时间:2011-05-08 10:48:58

标签: c++

template <typename T>
class Foo {
    T tVar;
    public:
    Foo(T t):tVar() {}
};

class FooDerived: public Foo<std::string> {};

FooDerived fd;

这段代码有什么问题?

1 个答案:

答案 0 :(得分:7)

问题是Foo没有空的C'tor - Foo(void),而FooDerived正试图用空的C'tor初始化Foo(因为它是默认的..)所以你会得到一个编译错误,因为编译器不知道如何创建DerivedFoo()