Извините за возможный глупый вопрос. Я бы хотел перезаписать мутатор/accesor по умолчанию для переменной класса (используя оператор =
вместо обычной номенклатуры set/get
. Я хотел бы получить некоторое руководство в этой возможности. Ближайший ресурс, который я нашел для моей проблемы, был this, что дает мне 50% от того, что мне нужно.оператор перегрузки = с типами неклассов
Допустим, у меня есть этот класс (этот код не моя фактическая потребность, но более простой пример того, что я прошу).
class IDCard {
int id;
int operator=(const int& n_id); // This works for copying
};
/*
* copy value of id out (no same value check)
*/
int& IDCard::operator=(const int& n_id) {
id = n_id;
return id;
}
Учитывая IDCard my_id
, Я могу это сделать: my_id
= 10, но я тоже хотел бы это сделать: int i = my_id
.
Для этого могу ли я перегрузить что-то в классе IDCard, чтобы вернуть примитив на операторе =
или будет работать только для установки объекта класса?
Я не вижу многих случаев, когда это может быть полезно, поскольку это сделает код более неоднозначным, но я преобразовал некоторый код python, который переписал их мутаторы и аксессоры, поэтому я подумал, есть ли у C++ аналогичная возможность.
[Оператор Int() const] (http://en.cppreference.com/w/cpp/language/cast_operator) – crashmstr