Как происходит наследование пользовательского конструктора? Здравствуйте!
У меня есть базовый класс и его конструктор:class dom
{
public:
dom(int h, string name);
string n_Name;
int height;
private:
};
dom::dom(int h, string name)
{
n_Name = name;
height = h;
cout << "Constructor 1 in work" << endl;
};
Я создаю производный класс, и вот здесь есть недопонимание, которое не устраняется в контексте чтения книги Доусона.class skyskr : public dom
{
public:
int kol_lud;
void st(int h);
skyskr();????
};
Какой конструктор я должен определить для производного класса? Я знаю, что конструкторы не наследуются - это значит, что переменные базового класса унаследуются, но будут пустыми? Поэкспериментировал по-разному: и определял аргументы производного класса, как у конструктора базового, и пробовал написать новые - студия ругается.

21 Авг 2019 в 07:05
183 +1
0
Ответы
1

При наследовании конструкторы базового класса не являются частью производного класса, поэтому вам нужно определить конструктор для производного класса skyskr. Вы можете вызвать конструктор базового класса в списке инициализации конструктора производного класса, передавая необходимые аргументы:

skyskr::skyskr() : dom(0, "default"), kol_lud(0)
{
// код инициализации для производного класса
}

В этом примере мы вызываем конструктор dom с параметрами 0 и "default" в списке инициализации конструктора skyskr. Таким образом, переменные height и n_Name базового класса будут инициализированы при создании объекта производного класса skyskr.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 161 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир