0

我正在重新学习 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 在等号上给出一个错误,说“错误:现在允许数据成员初始化”。每当我尝试在类的私有部分中声明变量的同时初始化变量时,都会发生此错误。

任何帮助或建议将不胜感激,在此先感谢。

4

1 回答 1

3

数组只能使用该语法进行初始化,而不是分配。您必须在构造函数的初始化列表中对其进行初始化:

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

或者,std::array可以分配使用。

std::array<string, 2> array;

 Class()
 {
    array = {{ "Hello", "World" }};
 }

其他:

Class()
{
    array[0] = "Hello";
    array[1] = "World";
}
于 2013-01-01T20:02:13.597 回答