Для того, что вы пытаетесь сделать, нужен оператор преобразования
operator int()
{
return this->member;
}
Для класса, который вы пытаетесь написать (содержащего только целочисленные члены), вам не нужно перегружать оператор =
.
=
Оператор - это одна из функций-членов, которая генерируется компилятором по умолчанию для каждого класса. Предостережение заключается в том, что оно выполняет простое побитовое копирование (поверхностное копирование) членов класса, поскольку у вас есть только целые числа, этого должно быть достаточно для вас.
Вам нужно было бы перегрузить оператор =
, если бы вы динамически размещали указатели в качестве функций-членов, потому что в этом случае поверхностная копия этих указателей приведет к тому, что все объекты, содержащие указатель на член, будут указывать на одно и то же динамическое расположение в памяти & если один из объектов заканчивает свое время жизни, другие объекты остаются с висящим указателем.
Как и @Tony, удачно указывает в наших комментариях. Мелкая копия обычно плохо, но не всегда . Смотрите его комментарии для сценария.
Если вы вообще хотите перегрузить оператор присваивания, проверьте Копировать и поменять местами , чтобы сделать это правильно.
Вы также должны проверить Правило Трех .