Я знаю, что, как правило, это невозможно, но мне было интересно, есть ли там какой-либо код, чтобы позволить мне иметь функцию в суперклассическом доступе к члену sub класс. Существует четыре подкласса, каждый из которых имеет переменную размера int, а для функции мне нужна переменная размера. Я поговорил с учителем о том, как каким-то образом использовал код друга, но она сказала, что это не сработает.Может ли функция суперкласса получить доступ к элементу данных подкласса
ответ
Вы можете сделать чистую виртуальную функцию в базовом классе, который возвращает размер. Затем вы можете реализовать эту функцию в производном классе, который вернет размер, который хранится в производном классе.
Вот какие функции виртуального члены являются для:
struct Base {
virtual std::string child_name() = 0;
};
struct Derived1 {
virtual std::string child_name { return "Derived1"; }
};
struct Derived2 {
virtual std::string child_name { return "Derived2"; }
};
Пожалуйста, обратите внимание, что если вы укажете = 0 в базовом классе ваш базовый класс станет «чисто виртуальным» и не инстанциируемый, так что если вы не Не нужно этого поведения, вам нужно будет определить реализацию по умолчанию, которая будет использоваться также, если производный класс не определяет виртуальную функцию.
ВАЖНО: Виртуальные функции не должны вызываться в конструкторе, иначе вы получите исключение (если функция является чистой виртуальной) или нежелательное поведение (по умолчанию будет вызываться реализация по умолчанию).
- 1. объект подкласса, доступ к скрытой переменной суперкласса
- 2. Доступ к методу подкласса из arraylist суперкласса
- 3. Доступ к свойствам суперкласса из подкласса
- 4. Доступ к полю подкласса из массива суперкласса?
- 5. Доступ делегат суперкласса из подкласса
- 6. Как получить доступ к переменной подкласса из универсального суперкласса
- 7. Как получить член данных суперкласса из подкласса
- 8. Как получить доступ к переопределенной переменной подкласса, используя экземпляр суперкласса
- 9. Как получить доступ к информации из суперкласса и подкласса?
- 10. Доступ к экземплярам подкласса
- 11. Можно ли получить доступ к суперклассу суперкласса в flex/as3?
- 12. Может ли унаследованная статическая функция получить доступ к переопределенному статическому частному элементу данных?
- 13. Объект суперкласса Объект данных подкласса
- 14. Возможно ли получить доступ к свойству в суперклассе из подкласса, принадлежащего элементу подкласса?
- 15. Может ли объект подкласса получить доступ к защищенному полю другого объекта другого подкласса?
- 16. Доступ к свойствам подкласса после прохождения в качестве суперкласса (as3)
- 17. Доступ к функции подкласса из массива объекта суперкласса
- 18. Доступ к методам подкласса из массива суперкласса в C++?
- 19. Доступ к представлениям из суперкласса
- 20. Доступ к защищенному конструктору суперкласса в методе подкласса
- 21. Доступ к членам суперкласса из подкласса с супер ключевым словом
- 22. Доступ к методам подкласса в векторе объектов суперкласса
- 23. Доступ к свойствам суперкласса из экземпляра его подкласса
- 24. Доступ и изменение свойств суперкласса из подкласса?
- 25. Доступ к свойству подкласса из суперкласса в Swift
- 26. Доступ к функции суперкласса с использованием объекта подкласса
- 27. функция суперкласса вызывается при вызове функции подкласса
- 28. Доступ к методу подкласса через ArrayList объектов суперкласса?
- 29. Доступ к свойству подкласса в методе переопределения суперкласса. Возможное?
- 30. Можно ли получить доступ к переменной подкласса, используя объект суперкласса в полиморфизме
Почему член не в суперклассе? –
Поскольку значение члена изменяется в зависимости от того, какой подкласс он находится в – Aidan