Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pEntity
11 / 6 / 1
Регистрация: 12.12.2012
Сообщений: 401
#1

Не создается указатель из-за базового класса с конструктором - C++

19.06.2014, 05:49. Просмотров 222. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Cbase
{
    public:
        virtual void Start( );
 
        int iGlobal;
 
        Cbase( int num )
        {
            iGlobal = num ;
        }
};
 
class COther : public Cbase
{
    public:
        void Start( );
 
        //COther() : Cbase( 0 ){ }
};
Создаю указатель:

C++
1
2
3
4
5
Cbase* pbase[] = 
{ 
    new Cbase( 0 ), 
    new COther 
};
На new COther, говорит:


error C2512: COther: нет подходящего конструктора по умолчанию

Если раскоментить строку //COther() : Cbase( 0 ){ } то всё окей.

Но это я в гугле нашел решение. Объясните, что не так и верное ли исправление.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 05:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не создается указатель из-за базового класса с конструктором (C++):

Указатель на объект базового класса и адрес объекта производного класса - C++
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}

Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса - C++
Класс В является производным от класса А. Определить обработчик исключительной ситуации на преобразование указателя базового класса А на...

Не создается указатель на класс внутри класса - C++
Всем привет! У меня возникла очень интересная ситуация... У меня есть набор классов. Часть классов являются членами других классов. ...

Создание полиморфного объекта, зачем создавать указатель на объект базового класса? - C++
Зачем создавать указатель на объект базового класса: Base *A = new Derived Если можно сделать так: Derived *A = new Derived

Конструирование дочерних классов из базового с private конструктором - C++
Здравствуйте! У меня есть базовый класс для синглтонов, и создание экземпляров оных происходит в базовом классе. Проблема в том, что...

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

1
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
19.06.2014, 06:16 #2
Ну правильно COther у тебя не имеет конструктора.
Конструктор родителя имеет вид Cbase( int num ), что тоже не подходит, так как ты инициализируешь класс без параметров.
C++
1
COther() : Cbase( 0 ){ }
сообщает, что конструктор COther это конструктор Cbase( 0 ), поэтому все работает.
Можешь просто создать конструктор в COther() и тоже будет работать, весь вопрос в том, для чего это тебе надо, и как ты эти классы собираешься использовать в дальнейшем.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2014, 06:16
Привет! Вот еще темы с ответами:

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

Перегрузка оператора >> для дочернего класса от базового виртуального класса - C++
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

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

Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? - C++
Если уже есть готовый объект базового класса. Могу я построить экземпляр дочернего на его основе, (напр., получив такой базовый объект...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru