Russian Qt Forum

Qt => Вопросы новичков => Тема начата: artur567297@gmail.com от Декабрь 23, 2020, 09:00



Название: Вопрос про определение оператора = в классе. Спецы должны знать.
Отправлено: artur567297@gmail.com от Декабрь 23, 2020, 09:00
Всем привет. Я в с++ новичок столкнулся тут с проблемой: Не работает определения оператора присвоения (=) в классе. Пишет кучу ошибок синтаксиса скобок и тд.
Если весь класс в одном файле проблем нет но если разделить класс на h и cpp - не хочет компилироваться. Час уже убил. Кто знает что не так. Вот пример кода:
Файл h:
class ZapretCopyConst
{

public:
std::string name;
ZapretCopyConst(std::string name);
ZapretCopyConst& operator = (const ZapretCopyConst& copySrc); //в h все нормально не хочет в cpp
void GetMessage();
};

Файл cpp :

ZapretCopyConst::ZapretCopyConst(std::string m_name)
{
   name = m_name;
}

void ZapretCopyConst::GetMessage()
{
   std::cout << name << std::endl;
}


//Что здесь не так ??????
ZapretCopyConst& = (const ZapretCopyConst& copySrc) // При компоновке пишет ошибка синтаксиса
{
   
    return *this;
}



Название: Re: Вопрос про определение оператора = в классе. Спецы должны знать.
Отправлено: ssoft от Декабрь 23, 2020, 09:38
Код
C++ (Qt)
ZapretCopyConst& ZapretCopyConst::operator = (const ZapretCopyConst& copySrc)
 


Название: Re: Вопрос про определение оператора = в классе. Спецы должны знать.
Отправлено: lit-uriy от Декабрь 31, 2020, 08:03
artur567297@gmail.com, тело оператора неверно, может это конечно "заглушка" в начале работы.
ты должен "не пустой" this вернуть, а предварительно скопировать
copySrc.name в  this->name

П.С.
общепринятое именование для copySrc -> other (переводится как "другой")