Visual Studio中的c++数组错误

C++ Array Error in Visual Studio

本文关键字:数组 错误 c++ 中的 Studio Visual      更新时间:2023-10-16

我正在重新学习c++,我在类中的数组有一些麻烦。下面是我处理

的简化版本
class Class
{
private:
    string array[2];
public:
    Class()
    {
        array[2] = {"Hello", "World"};
    }
    void printOut(int x)
    {
        cout << array[x];
    }

Visual Studio在构造函数中数组初始化的第一个大括号错误(即{"Hello", "World"};上面写着"错误:期望一个表达式。"然而,当我初始化任何其他变量(不是数组)时,这个问题不会发生。

当我在类的私有部分声明数组时,我可以简单地初始化数组值,如下所示。

class Class
{
private:
    string array[2] = {"Hello", "World"};

但是Visual Studio在等号上给出了一个错误:"错误:数据成员初始化现在是允许的。"当我试图在类的私有部分声明变量的同时初始化变量时,确实会发生此错误。

任何帮助或建议将不胜感激,提前感谢。

数组只能使用该语法初始化,不能赋值。你必须在构造函数的初始化列表中初始化它:

Class() : array{"Hello", "World"} {}

也可以使用可分配的std::array

std::array<string, 2> array;
 Class()
 {
    array = {{ "Hello", "World" }};
 }

:

Class()
{
    array[0] = "Hello";
    array[1] = "World";
}