在类的私有部分中声明一个数组,并在构造函数中分配数组值

Declare an array in the private section of a class and assign the Array values in the Constructor

本文关键字:数组 一个 分配 构造函数 声明      更新时间:2023-10-16

我正在尝试声明一个数组属性,然后在构造函数中初始化数组,但出现错误:预期的表达式。

class LargestArray
{
private:
int array[5];
int size;`
public:
LargestArray()
{
array[]  = { 18, 38, 24, 57, 69 };
size = sizeof(array) / sizeof(array[0]);
}
void largest();
void secondLargest();
void kLargest();
void threeLargest();
};

有人可以帮助我在这里错过什么吗?

数组不可分配。此外,array[] = {...}在语法上没有意义。

与所有成员一样,数组成员使用成员初始化器进行初始化:

LargestArray(): array{ 18, 38, 24, 57, 69 }
{
...

不需要非静态成员size,因为数组的大小在运行时不能改变。

可以在构造函数成员初始值设定项列表中初始化数组

A::A() : array{2,3,4,1,6,5,4} {
}

或较旧的语法

A::A() : array({2,3,4,1,6,5,4}) {
}

不过,您的示例应使用支持最新标准的编译器进行编译。

相关文章: