在c++构造函数中初始化数组

Initializing an array within a c++ constructor

本文关键字:初始化 数组 构造函数 c++      更新时间:2023-10-16

我想要一个数组作为类成员,但是我知道如何在构造函数中初始化数组的唯一方法是分别添加每个元素(array[x] = char)

class MyClass
{
  public:
    MyClass();
    ~MyClass();
    void PrintLetters(); // Prints each character in the array
  private:
    int alpha[3]; // Allocate memory for array
};
MyClass::MyClass()
{
    // Initialize the array
    alpha[0] = 1;
    alpha[1] = 2;
    alpha[2] = 3;
    PrintLetters();
}
MyClass::~MyClass()
{
}
void MyClass::PrintLetters()
{
    for (int x = 0; x < 3; x += 1)
    {
        cout << alpha[x] << endl;
    }
}
int main()
{
    MyClass abc;
    return 0;
}  

还有别的方法吗?如果我试着这样做:

MyClass::MyClass()
{
    // Initialize the array
    alpha[3] = {1, 2, 3};
    PrintLetters();
} 

我得到以下错误:表达式语法在turbo c++

我相信至少在GCC中,使用-std=c++11,您可以这样做:

MyClass::MyClass() : alpha{1, 2, 3}
{
    PrintLetters();
}

这只是成员初始化列表中的数组初始化。这是一个标准的c++特性,但是一些编译器(cough vc++ cough)可能还没有实现它。