C++ 实例变量初始值设定项中的重复类型

C++ Repeated type in instance variable initializer

本文关键字:类型 变量 实例 C++      更新时间:2023-10-16

考虑以下类,实例变量 a 初始化为长度为 3 的向量:

class A {
public:
vector<int> a = vector<int>(3); 
};

这工作正常,但请注意,类型向量重复了两次。有没有办法只写一次这种类型?(在现实生活中,我正在处理更冗长的类型名称。

我认为这应该有效:

class A {
public:
vector<int> a(3); 
};

但是不,无论如何它都不适用于 C++11,也许是因为这看起来很可疑,就像"A"被声明为成员函数一样。

不,你不能做这样的事情。您必须使用第一个解决方案,或者执行以下操作:

class A {
private:
vector<int> a; 
public:
A() : a(3) {};
};

现场示例

您也可以使用大括号初始化语法:

class A 
{
vector<int> a{1,2,3}; 
};

现在矢量包含三个元素。