Ошибка Е1776 на функцию нельзя ссылаться, так как эта функция удалена Visual Studio 2019
Здравствуйте у меня возникает такая ошибка мой код
#include <iostream>
#include<string>
using namespace std;
class prog {
private:
const int ID = 7548;
string fio;
public:
prog() {
fio = "undefined";
}
prog(string fio) {
this->fio = fio;
}
void SET(int& id) {
id = ID;
}
};
int main()
{
string fio = "name";
prog A[10];
A[1] = prog(fio);
}
И ругается на данную строку кода A[1] = prog(fio); но если я уберу свою константу ID то все работает как эту ошибку исправить ?
Ответы (1 шт):
Автор решения: goldstar_labs
→ Ссылка
Когда вы добавляете в класс константный член, то компилятор не может сгенерировать оператор присваивания по умолчанию, т.к. константе нельзя присвоить.
Оператор присваивания используется тут:
A[1] = prog(fio);
Решение - переопределить оператор присваивания вручную:
prog& operator=(const prog& other)
{
if (this != &other)
{
fio = other.fio;
}
return *this;
}