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