如何使用构造函数初始化数组? C++ [重复]

Posted

技术标签:

【中文标题】如何使用构造函数初始化数组? C++ [重复]【英文标题】:How do I initialise an array using a constructor? C++ [duplicate] 【发布时间】:2015-05-26 16:35:57 【问题描述】:

我是一名初学者 C++ 程序员,不知道为什么这行不通:

#include <iostream>
using namespace std;

class Hello
   private:
        int mess[];
    public:
        Hello() 
            mess =  1, 3, 4, 546, 2 ;
        
;

int main()

    Hello h;
    return 0;

一直说:错误:从初始化列表分配给数组

对我初始化数组“mess = 1, 3, 4, 546, 2 ;”的方式很不满意

为什么会发生这种情况,我该如何解决?

谢谢!

【问题讨论】:

“它对我初始化数组的方式不满意” 因为你没有!你分配给它。 (或者,尝试使用初始化器语法,但这是行不通的。) 【参考方案1】:

C 数组是不可分配的(而且你没有给它一个大小)

您可以在构造函数初始化器中对其进行初始化:

class Hello
   private:
        int mess[5];
    public:
        Hello() : mess 1, 3, 4, 546, 2  
;

【讨论】:

以上是关于如何使用构造函数初始化数组? C++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在构造函数中将数组初始化为0 [重复]

如何在构造函数中初始化指向字符串的指针数组[重复]

C++ 如何将一个静态结构体数组初始化?

C++:如何初始化以下 std::shared_ptr 构造函数数组

C ++:如何在派生类中定义基类构造函数,如果基构造函数具有带有私有成员的初始化列表[重复]

C++中数组的构造函数初始化列表