3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
|
|||||||||||
1 | |||||||||||
Нюансы использования абстрактных базовых классов (класс Shape)18.12.2015, 20:26. Показов 879. Ответов 10
Метки нет (Все метки)
У меня класс Point наследуется с абстрактного базового класса Shape, и Point тоже абстрактный, поскольку не определил функцию get_area(). Знаю, что не могу создать обьект класса Point, но как мне работать с функциями point, с помощью указателя, если не позволяет инициализировать ( в main). Не очень хорошо понимаю абстракцию. Дайте ключевые понятия плиз.
0
|
18.12.2015, 20:26 | |
Ответы с готовыми решениями:
10
Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) Множественное наследование с использованием абстрактных базовых классов Множественное наследование с использованием абстрактных базовых классов, файлового ввода-вывода с применением потоков С++, функций обработки исключи Конструкторы базовых классов ("Производный класс не наследует конструкторы базовых классов") |
3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
|
|
18.12.2015, 21:12 [ТС] | 3 |
nord_v, А как определить площадь точки?. Ну и вопрос вообще то был про подобных ситуациях, а не конкретно здесь.
0
|
Диссидент
27708 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
18.12.2015, 21:21 | 4 | |||||
Добавлено через 1 минуту Ну вот аналогично и определяй...
1
|
3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
|
|
18.12.2015, 21:33 [ТС] | 6 |
Байт, nord_v, Спасибо вас, начинаю что то понять, но походу еще много вопросов будут.
Так это правильный подход, всегда что бы избежать от абстракций какого то класса (в иерархии) просто взять все функции базового класса которые не имеют смысл в производном классе определить так, чтоб возвращал абсурдное значение(определить так чтоб не имел смысл)?
0
|
Диссидент
27708 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
18.12.2015, 21:44 | 8 |
Ну почему абсурдное? Точка ведь и впрямь имеет нулевую площадь!
Но вообще-то если реальный класс хочет наследоваться от абстрактного, он должен определить, "закрыть" все его чисто виртуальные методы. А уж как - это не важно. Если метод что-то возвращает - пусть он возвратит нуль. void-метод пусть просто ничего не делает. Пример. Класс СОБАКА. Метод - void Поднять_Хвост(градус). class ЭРДЕЛЬ : СОБАКА. Так как у эрделей хвоста нет, то и поднимать нечего. Метод просто ничего не делает. Но написать это нужно: void Поднять_Хвост(градус) { }
1
|
Байт
|
18.12.2015, 21:45
#10
|
Не по теме: nord_v, ну мы с вами прям в один голос поем...:)
0
|
3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
|
|
18.12.2015, 21:54 [ТС] | 11 |
Байт, nord_v, Спасибо вас, помогли очень, теперь ясно )
0
|
18.12.2015, 21:54 | |
18.12.2015, 21:54 | |
Помогаю со студенческими работами здесь
11
Класс наследуемый от двух базовых классов Создать не менее 2-х базовых классов и класс, наследующий их поля Список абстрактных классов Использование абстрактных классов Объекты и экземпляры абстрактных классов Поиск в массиве абстрактных классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |