Почему я могу установить this == &st
, но не *this == st
?
Я думаю, вы хотите сказать, почему я могу использовать this == &st
, но не *this == st
?
Не обращая внимания на минуту, ответ таков: да, вы можете, но это не всегда правильно делать всегда. Это может быть подходящим для вашего случая. В этом случае вы должны обязательно использовать его. Конечно, это подразумевает, что вам нужно сначала реализовать operator==
для вашего класса.
Вот пример, где вам не следует использовать *this == st
, чтобы сделать присвоение oop.
Допустим, у вас есть класс, который захватывает физическую величину со значением и единицами, и, скажем, у вас есть:
объект a
, который представляет 1 "м".
объект b
, который представляет 100 см
Когда вы сравните a
с b
, вы должны вернуться true
. Но когда вы назначаете a
на b
или наоборот, IMO вы должны приступить к назначению.