2015-01-30 4 views
0

Я создаю приложение C++ и у меня есть класс, который содержит переменный с char массива, например:C++ - Ошибка: Выражение должна быть изменяемым именующим

class MyClass 
{ 
public: 
    // The constructor 
    MyClass(char[]); 
private: 
    // The variable 
    char myVariable[]; 
} 

И я пытаюсь установить эту переменный конструктор так:

// The constructor 
MyClass::MyClass(char myVariable[]) 
{ 
    // Set the variable 
    MyClass::myVariable = myVariable; //<----- Error 
} 

, но затем я получаю сообщение об ошибке (Error: expression must be a modifiable lvalue) на линии, где я установил переменную MyClass::myVariable на. Я новичок в C++, поэтому я понятия не имею, что это значит. Любая помощь будет оценена!

ответ

3

Вы не можете назначить массивы, используя переуступке оператор (=)

Вы должны #include<algorithm> и вызвать следующую

std::copy(myVariable, MyClass::myVariable, size_of_muVariable); 

В противном случае измените элемент и аргумент указателя или СТЛ типа, как:

char *myVariable; 
std::string myVariable; 
std::vector<char> myVariable;