жёсткий код, много не нужных приведений. - надо было написать в классе Exception поле str с типом "const char*" и тогда не пришлось бы потом повсюду писать у строк (char*)"Divide zero" - зачем писать return (float)NULL, если можно просто написать return 0.f. С int тоже самое. - чтобы не писать this->num = num нужно просто дать нормальные имена переменным
А зачем тут может понадобиться абстрактный класс Exception? throw и catch всё равно не примут объект абстрактного класса в качестве операнда и потребуется приводить тип. Разве что кому-то зачем-то потребуется собирать возникшие исключения в массив, а в остальных случаях не понимаю, почему не обойтись простым наследованием...
разобрался сам, catch может принимать ссылку на абстрактный класс в то время, как throw передает потомок, или же принимать указатель на абстрактный класс, в то время, как throw передает ссылку на потомка.
Ты самый крутой преподаватель по С++. Спасибо тебе, выручаешь часто!
Спасибо
Очень хорошие уроки, ничего лишнего. Спасибо тебе большое.
как же офигенно, когда смотришь видео и не хочешь менять скорость воспроизведения
Хорошо объяснил, хоть и длинновато, но доступно и без лишних упрощений. Других внятных видео по этой неприятной теме я не нашел.
Друзьям посоветуй)
Очень полезная инфа
Спасибо, стараюсь :)
доходчиво объяснил спасибо : )
Хорошие уроки👍
А почему не используется override? Или я чего-то не понял?:) когда функция display переопределяется
можно и без него)
override используется для того, чтобы компилятор вывел ошибку в случае если пользователь неправильно объявил виртуальную функцию
видос хороший, но с английским у Вас проблемки
#include
?
Знаєш?
Отличный канал! Почему она на дне ютуба? Что за дела?!
Возможно, у людей вянут уши от "Троу экзепшн" и обращение к экземпляру через "зыз" :)
не трож мой зыз
CODE & ROBOTS ладно, ладно :) Держи лайк
Вторая несмешная шутка... Я орнул XD
Ну видео вполне себе
жёсткий код, много не нужных приведений.
- надо было написать в классе Exception поле str с типом "const char*" и тогда не пришлось бы потом повсюду писать у строк (char*)"Divide zero"
- зачем писать return (float)NULL, если можно просто написать return 0.f. С int тоже самое.
- чтобы не писать this->num = num нужно просто дать нормальные имена переменным
А зачем тут может понадобиться абстрактный класс Exception? throw и catch всё равно не примут объект абстрактного класса в качестве операнда и потребуется приводить тип. Разве что кому-то зачем-то потребуется собирать возникшие исключения в массив, а в остальных случаях не понимаю, почему не обойтись простым наследованием...
разобрался сам, catch может принимать ссылку на абстрактный класс в то время, как throw передает потомок, или же принимать указатель на абстрактный класс, в то время, как throw передает ссылку на потомка.