но сравнить этот объект с NULL — нет. Что на самом деле происходит, когда я пишу obj = NULL?
Присврение null Сравнение это ==
Там у него чуть другой вопрос. Если сравнить с null нельзя, спрашивает, что происходит при присвоении null
Это отлично, но ошибка в сравнении no operator "==" matches these operands -- operand types are: ClassOfObj == long Я подумал что ему глобально надо оверлоднуть оператор сравнения, что я и написал для данного класса, но дело было не в этом.
User::User() { this->personalCabinet = NULL; } bool User::canOpen(Room room) { return room.accessLevel <= this->accessLevel || (this->personalCabinet == NULL ? this->personalCabinet.number == room.number : false); }
А какой тип у personalCabinet?
personalCabinet это указатель или ссылка? И вообще nullptr
PersonalCabinet inherits Room
Это указатель или нет?
нет, это не указатель
Ссзб. В С++ нет nullable типов
я извиняюсь, а std::optional?
Ну это библиотечный класс, как бы имитация nullable типа. Не считаю возможным сказать "в С++ есть nullable типы". С тем же успехом ими можно назвать указатели
Обсуждают сегодня