2015-05-26 2 views
0

Я программист начинающего C++ и не знает, почему это не будет работать:Как инициализировать массив с помощью конструктора? 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

_ "Это недовольно тем, как я инициированный массив «Потому что ты этого не сделал! Вы _assigned_ к нему. (Или, попробовал, используя синтаксис инициализатора, который не может работать.) –

ответ

2

C-массив не назначаемый (и вы не даете ему размера)

Вы можете инициализировать его в конструкторе инициализаторе:

class Hello 
{ private: 
     int mess[5]; 
    public: 
     Hello() : mess{ 1, 3, 4, 546, 2 } {} 
}; 
Смежные вопросы