我必须在函数的声明和实现中都写初始化列表吗?

Do I have to write the initialization list in both declaration and implementation of a function?

class Zb{
      int zbr;
      int* kos;
public:
      Zb(int er):zbr(er);
};

那是函数声明,它的实现是否也必须有初始化列表?

Zb::Zb(int er):zbr(er) {
      kos = new int[zbr];
}

我知道我可以在初始化列表中写下整个 c'tor,但我只是想要一个适合我的问题的示例...

初始化列表只属于定义(即实际函数代码)

您的代码无效,编译器不允许您在函数声明中指定初始化列表。

您的代码如下所示:

class Zb {
      int zbr;
      int* kos;
public:
      Zb(int er);
};

定义(cpp 文件)如下所示:

Zb::Zb(int er) : zbr(er) {
      kos = new int[zbr];
}