Russian Qt Forum
Апрель 28, 2024, 13:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос про определение оператора = в классе. Спецы должны знать.  (Прочитано 1824 раз)
artur567297@gmail.com
Новичок

Offline Offline

Сообщений: 7


Просмотр профиля
« : Декабрь 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;
}

Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 579


Просмотр профиля
« Ответ #1 : Декабрь 23, 2020, 09:38 »

Код
C++ (Qt)
ZapretCopyConst& ZapretCopyConst::operator = (const ZapretCopyConst& copySrc)
 
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Декабрь 31, 2020, 08:03 »

artur567297@gmail.com, тело оператора неверно, может это конечно "заглушка" в начале работы.
ты должен "не пустой" this вернуть, а предварительно скопировать
copySrc.name в  this->name

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

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 22.