Напишите структуру ThisChecker.
У неё будет всего один метод bool IsSame(const ThisChecker&). Т.е. метод принимает только один аргумент, константную ссылку на объект типа ThisChecker.
Этот метод должен вернуть true, если аргументом является тот же самый объект, метод которого вызывается, и false в противном случае (см. пример).
Метод должен работать как для константных, так и не константных объектов(также см. пример)
В систему отправляйте только код структуры
Пример работы
ThisChecker a;
ThisChecker b;
std::cout << a.IsSame(b) << "\n"; // false
std::cout << a.IsSame(a) << "\n"; // true
const ThisChecker& c = a;
std::cout << c.IsSame(a) << "\n"; // true
Ответы
struct ThisChecker {
bool IsSame(const ThisChecker& other) const {
return this == &other;
}
};
Объекты типа ThisChecker будут содержать только один метод IsSame, который принимает константную ссылку на объект типа ThisChecker и проверяет, является ли переданный объект тем же самым объектом, что и вызывающий метод. Для этого метод просто сравнивает указатели this и &other.
Так как метод не изменяет состояние объекта, мы можем добавить ключевое слово const после объявления метода. Это позволит вызывать этот метод и для константных объектов типа ThisChecker.
пример структуры:
int main() {
ThisChecker a;
ThisChecker b;
std::cout << a.IsSame(b) << "\n"; // false
std::cout << a.IsSame(a) << "\n"; // true
const ThisChecker& c = a;
std::cout << c.IsSame(a) << "\n"; // true
return 0;
}