在类的私有部分中声明一个数组,并在构造函数中分配数组值
Declare an array in the private section of a class and assign the Array values in the Constructor
我正在尝试声明一个数组属性,然后在构造函数中初始化数组,但出现错误:预期的表达式。
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}) {
}
不过,您的示例应使用支持最新标准的编译器进行编译。