Паттерн properties работает примерно так. Есть базовые проперти которые виртуально возвращают нули, далее для каждого ребенка создаются свои проперти наследуемые от базовых и уже они возвращают реальные значения. Так ты решаешь 2 проблемы. 1 - та, с которой вы столкнулись 2 - если проперти не существует для конкретного наследника, вернётся что-то около null, которы можно проверить
ну если это требуется, то почему нет
Что-то подсказывает что так нельзя рассуждать в контексте плюсов. Сейчас как-бы dynamic cast тоже нужен, но это неправильно
Осторожно, кто-то сочтет этот антипаттерном!
ну возврат null это жи "небезопасна"
Ну вернуть можно std optional в таком случае
можно, потому что это ничего не ломает и не нарушает. А динамик каст вообще-то ломает весь смысл абстракции, потому что в методе принимающем базовый класс, будет использоваться конкретная реализация. Не проще тогда сразу наследников передать и все
Обсуждают сегодня