0 / 0 / 0
Регистрация: 29.03.2014
Сообщений: 8
1

Создание экземпляра производного класса конструктором базового

07.08.2018, 19:58. Показов 1314. Ответов 2
Метки нет (Все метки)

Всем привет

создал базовый класс, который в конструкторе принимает некий параметр

C++
1
2
3
4
5
6
class ModuleBase
    {
        public:
 
            ModuleBase( Data * data );
    };
далее создал от него производный, но не стал описывать конструктор, поскольку он не меняется

C++
1
2
3
4
class ModuleChild : public ModuleBase
    {
        
    };
вопрос - могу ли я создать экземпляр производного класса, используя конструктор базового (с параметром)?

если вызываю родительский, то всё ок:

C++
1
2
ModuleBase * module;
module = new ModuleBase( data );  // всё ок
а если пытаюсь вызвать производный:

C++
1
2
3
ModuleChild * module;
 
module = new ModuleChild( data );  // error: no matching function for call to ModuleChild::ModuleChild(Data*&)

собственно как создать наследника, используя конструктор родителя, чтоб его (конструктор) не описывать в самом наследнике?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2018, 19:58
Ответы с готовыми решениями:

Создание нового экземпляра дочернего класса из экземпляра базового
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... ...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса -...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью...

Создание экземпляра производного класса в зависимости от выбора пользователя
Помогите, пожалуйста, понять как нужно сделать меню. Предположим, есть базовый класс и два...

2
1463 / 1005 / 455
Регистрация: 30.10.2017
Сообщений: 2,793
07.08.2018, 20:09 2
Лучший ответ Сообщение было отмечено renych как решение

Решение

C++
1
2
3
4
5
class ModuleChild : public ModuleBase
{
public:
    ModuleChild(Data *data) : ModuleBase(data) {}
};
1
Don't worry, be happy
17768 / 10533 / 2034
Регистрация: 27.09.2012
Сообщений: 26,505
Записей в блоге: 1
07.08.2018, 20:10 3
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

Цитата Сообщение от renych Посмотреть сообщение
вопрос - могу ли я создать экземпляр производного класса, используя конструктор базового (с параметром)?
Начиная с C++11 можете использовать наследование конструкторов:
C++
1
2
3
4
class ModuleChild : public ModuleBase
    {
        using ModuleBase::ModuleBase;
    };
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2018, 20:10
Помогаю со студенческими работами здесь

Сложение экземпляра базового класса и экземпляра наследника
Добрый вечер! Моя задача - сложить экземпляр базового класса и наследника. Нужно сделать так, чтобы...

Почему объект производного класса не видит префиксный оператор из базового класса?
Короче создал я базовый класс с перегруженным префиксным оператором ++. Потом чтоб его...

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект...

Вызов метода производного класса через обращение к методу базового класса
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru