Moh*_* Li 0 c++ inheritance constructor
我无法在子类中声明构造函数,该子类的超类是从模板创建的。
示例代码如下所示:
template <class T>
class foo{
public:
foo();
};
typedef foo<double> foo_double;
class bar : public foo_double
{
bar() : foo_double();
};
int main(){
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,我收到一个错误:
In constructor ‘bar::bar()’:
expected ‘{’ at end of input
Run Code Online (Sandbox Code Playgroud)
我在这里有点不知所措。
成员初始化列表只能与构造函数定义一起使用。所以你需要将它定义为
bar() : foo_double() {}
Run Code Online (Sandbox Code Playgroud)
并且默认情况下会默认构造基类,因此您根本不需要这样做。只是
bar() {}
Run Code Online (Sandbox Code Playgroud)