我无法在子类中声明构造函数,其子类是从模板创建的。
示例代码如下所示:
template <class T>
class foo{
public:
foo();
};
typedef foo<double> foo_double;
class bar : public foo_double
{
bar() : foo_double();
};
int main(){
}
当我编译时,我收到一个错误:
In constructor ‘bar::bar()’:
expected ‘{’ at end of input
我在这里有点不知所措。
答案 0 :(得分:4)
成员初始化列表只能与构造函数定义一起使用。所以你需要将其定义为
bar() : foo_double() {}
默认情况下,基类将默认构造,因此您根本不需要这样做。刚
bar() {}
答案 1 :(得分:1)
bar() : foo_double();
不是构造函数。
bar() : foo_double() { }
是
答案 2 :(得分:1)
你忘记了大括号{ }
bar() : foo_double() { }
// ^^^