【发布时间】:2011-05-17 09:19:41
【问题描述】:
你能告诉我,我错过了什么吗?
template <class T> struct Base
{
T data;
Base(const T &_data):data(_data) { }
};
template <class T> struct Derived : Base<T>
{
Derived():Base(T()) {} //error: class 'Derived<T>' does not have any field named 'Base'
};
【问题讨论】:
-
正如其他人指出的那样,如果您将
Base(T())更改为Base<T>(T()),它就会编译。但是谁能告诉我们这两个编译器中哪一个是正确的?
标签: c++ templates visual-c++ inheritance gcc