【问题标题】:How do I initialise an array using a constructor? C++ [duplicate]如何使用构造函数初始化数组? C++ [重复]
【发布时间】: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 };”的方式很不满意

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

谢谢!

【问题讨论】:

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

标签: c++ arrays constructor


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2012-09-15
    相关资源
    最近更新 更多