Вызов конструктора базового класса из конструктора класса-наследника. Наследование. ООП C++
HTML-код
- Опубликовано: 27 окт 2017
- Понравилось видео или оказалось полезным? Подпишись!
Поддержка канала
/ simplecode
Вызов конструктора базового класса из конструктора класса-наследника. Наследование. ООП C++ Для начинающих. Урок #102
Конструктор класса пример. Зачем нужен. Конструктор с параметрами. Конструктор по умолчанию. Урок#78
goo.gl/2va25d
Перегрузка конструкторов класса. Что такое перегрузка. Как перегрузить конструктор. Урок#79
goo.gl/XzRJww
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit
*Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!*
если хотите, чтобы параметры к конструктору В шли в конструктор А
B(int a):A(a)
Спасибо
+1
Можно это реализовать вне класса?
@@user-ip8cq7gy8y Как и любую функцию-член:
class Type : public base
{
public:
Type(...); //просто объявление конструктора
...
};
// реализация вынесенная вне класса:
Type::Type(...):base(...)
{
....
}
Молодец спосибо
#конструкторбазовогокласса #ООП #SimpleCode #урокипрограммирования
Лайк я конечно поставлю, спасибо что сделали доброе дело. От себя добавлю то, о чём тут не рассказано. (см момент 7:01 ) Новички часто сталкиваются с затруднениями при описании конструктора дочернего класса ВНЕ ТЕЛА КЛАССА.
А делать надо так:
class B : public A
{
public:
B(); // тут мы не пишем вызов конструктора класса A
};
B::B(): A("наше новое сообщение") // а тут пишем
{
}
лооооооооооооооол ок
Так давайте ещё разделим реализацию методов класса и их прототипы в отдельные файлы .cpp и .h соответственно. Так будет ещё не понятнее но зато ПРАВИЛЬНО!
Спасибо за урок
Сергей, Ваша способность доходчиво обьяснить просто поражает. Спасибо, ОГРОМНОЕ.
Спасибо
Спасибо за отличный урок!
Спасибо за урок.
привет из 2023. Спасибо большое за уроки!
Спасибо . Хорошо сделал видео уроки ! Жаль заданий нету
божечки, мне это видео очень сильно помогло!
спасибо больше!
Сергей, спасибо за Ваши видео!
благодарю вас!
Спасибо за урок)
Спасибо за урок!
Спасибо за урок))
Посмотрел уроки до этого, решил порешать задачи и столкнулся как раз с этой проблемой. Подумал, что не усвоил какие-то моменты, сразу зашёл на канал и увидел, что следующее видео как раз на эту тему:) Большое Спасибо!
А где задачки решал не подскажешь?
Благодарю за бесценную работ!
Very good!
странно что ты забыл упомянуть передачу параметров производного базовому классу через конструктора т.е.
class B
{
public:
B(){
cout msg = msg;
cout
Видимо забыл, но до тебя уже указали на такую возможность.
Спасибо
При создании объекта класса "А" мы можем передать параметром строку, содержание которой будет присвоено полю "msg".
А каким образом мы можем передать в поле "msg" объекта класса "B" строку, не копаясь в теле класса "B" (не проводя там никаких манипуляций с конструктором), а просто передав строку параметром, как с объектом класса "А"?
тоже интересовал этот вопрос по мере просмотра видео
не нашли ответа случайно?
никак,после такого поглядишь на наследование и поймешь что это в принципе вещь пребесполезнейшая. Ну либо конструкторы вообще какие то забагованные.
Artem Tereza а можно по подробнее с момента бесполезности наследования?
Krechetulya не знаю актуален ли вопрос, но может через дружественный метод ?
@@pubgr862 Не-а) я уже передумал, все норм с этим наследованием
А при трёх и более уровнях наследования как вызывать определённые конструкторы на каждом этапе? Какой синтаксис будет?
Наверно
first ( int x ) { code... this->x=x/2 } // конструктор принимает цифру x
second ( int y ):first ( y ) { code... this->y=x+6 } // конструктор принимает цифру y и отправляет как x для first
three ( int z):second ( z ) { code... this->z=z } // конструктор принимает цифру z и отправляет как y для second
создаю объект класса three
three myObject( 10 );
Итог:
x = 5
y = 16
z = 10
Ну вот я и дошёл до "последнего видео". Просмотрел всё от первого по этого (#102) чуть меньше чем за два месяца, большое спасибо автору за труд, всё сказанное в уроках более чем понятно. У меня кстати возникла проблема, после последнего обновления visual studio, с созданием нового проекта. Когда создаю "консольное приложение windows" при последующей компиляции выдаёт ошибку связанную с (#include "stdafx.h"), а если просто создавать пустой проект, то при той же компиляции консоль мгновенно закрывается (и решения типа добавить system("pause") не помогают ). Ну а так всё отлично. Жду нового видео ! P.S. всё хорошо в этих урока, но одно всё же доставляет дискомфорт - это одна и та же композиция на фоне , жуть как приедается после пятого раза, но это только моё мнение.
Ставь, х1.5 и её слышно не будет, я так и не услышал, что за композиция. Автору конечно же огромное спасибо, для переезда на плюсы, просто идеальные уроки. Жду следующих уроков, а пока займусь opencv.
как сейчас успехи? Стал программистом?
СЕРЁГА ТЫ ЛЕГЕНДА!
👍
спасибо)
похоже на перегрузку конструкторов)
Спасибо,понятно。
А если больше двух наследований тогда как происходит инициализация конструкторов других классах(если их там не один а несколько)?
спасибо
Спасибо!
Здравствуйте,как можно создать класс прямоугольников rectangle
Для тех,кто мб что-то недопонял.
Когда мы прописали B() : A(.....)
По факту,вы компилятору говорите: так,ты сначала вызови конструктор базового класса А(....),а потом уже конструктор B()
Nice video 🔥👍😎
Ребят я чет не понял...
В случае B():A("Наше новое сообщение") - сама строка текстовая как-бы фиксированная.
Т.е. мы не можем создать объект b с любой желаемой строкой получается? Или я чего-то не понимаю...
Можно
B(string msg) : A(msg) {...}
Так мы передаем строку msg в класс А, значит для класса А небходим констуктор:
A(string msg) {...}
@@carteblanche9165 но чел был прав, если будет именно так как он описал, то точно не сможем xd
Ну, реально не пойму я эти наследования конструкторов. Я еще понимаю наследования полей, но наследование конструкторов только усложняет и запутывает. Кто, куда и откуда наследовал.
Димон, разобрался?
А может ли класс А наследоваться от класса B, если класс B наследуется от класса A
0_о
Глупый вопрос. Это все равно, что ты бы сам радил себе отца
ISppsd Official а вот тут уже сценарий для фильма)))
@@user-ov4yc6nq2z ...и лошади едят друг друга!
@@pubgr862, а ведь похожий фильм сняли)))
@@user-ov4yc6nq2z 😂😂😂😂😂👌
up
2024
Пуставь вместо занудного метала 8-битки какие-нибудь. На манер кряков.
At Doom's Gate(8bit) например.
я все рано не понял. пытаюсь передать а он мне говорит что нельзя string использовать
почему у класса А может быть несколько конструкторов, а у Класса В нужно указывать явно какой конструктор Класса А будет вызываться?
разве Класс В ущербнее Класса А?!
Потому что прежде чем создать объект класса В, нужно создать объект класса А. Так что да, в каком-то смысле ущербнее.
Спасибо тебе за всё. Нет войне!
Слава России
Спасибо за урок!
спасибо