c++ - 构造函数错误 : expected ‘{’ at end of input

标签 c++ inheritance constructor

我在从其父类(super class)是从模板创建的子类中声明构造函数时遇到问题。

示例代码如下所示:

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

我在这里有点不知所措。

最佳答案

成员初始化列表只能与构造函数定义一起使用。所以你需要将它定义为

bar() : foo_double() {}

并且默认会默认构造基类,所以你根本不需要做。只是

bar() {}

关于c++ - 构造函数错误 : expected ‘{’ at end of input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36749287/

相关文章:

java - 创建子类的实例是否会自动创建其父类(super class)对象?

java - 如何初始化需要复杂计算的最终变量?

java - ParquetWriter 构造函数不可见

c++ - 如何检查模板参数是否为结构/类?

C++ - 复制赋值运算符被隐式删除

c++ - add_rect 标识符未找到 C++

c++ - 为什么在堆中创建对象或堆栈中的临时对象时,隐式构造函数将结构中的 POD 初始化为零?

c++ - 模板特化不适用于派生类

c# - 没有从派生到基础类的装箱转换

ios - Swift:类型必须实现协议(protocol)并且是给定类的子类