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

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

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

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

19.06.2014, 05:49. Просмотров 213. Ответов 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 ){ } то всё окей.

Но это я в гугле нашел решение. Объясните, что не так и верное ли исправление.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 05:49     Не создается указатель из-за базового класса с конструктором
Посмотрите здесь:

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

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

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

Создание класса с определенным конструктором - C++
Добрый день! Буду благодарен если поможете создать класс VectorEntry который будет соответствовать данному коду: VectorEntry...

Ошибка инициализации объекта, конструктором класса - C++
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) "Создайте класс с именем Account, которым мог бы...

Член класса, создаваемый конструктором с параметром - C++
class A { public: class B { ... B(A *param); // Как открыть этот конструктор классу A, но закрыть его ото всех...

Создание массива класса, с установленным конструктором - C++
Не могу разобраться, создаю ссылку на класс в h файле, далее в cpp инициализирую, *.h FILE* file. *.cpp, вот тут мне нужен...

Задание начальных значений объекта класса конструктором - C++
здравствуйте, форумчане. подскажите, пожалуйта, можно ли реализовать следующее: нужно создать конструктор, способный использовать...

Создание массива экземпляров класса с не стандарным конструктором - C++
Здравствуйте. Подскажите пожалуйста. Есть у меня некий класс Аaa. У него два конструктора - простой и с передаваемым параметром. class...

Как создать объект с конструктором в интерфейсе другого класса? - C++
struct WorkerInfo { WorkerInfo(int iPay, int iDebt) : pay (iPay), iDebt(debt) {} ~WorkerInfo() {} int pay; // зарплата ...

Конструктор базового класса - C++
Привет, друзья, есть, к примеру, такие классы: class Base { public: int x; Base() { } };

Функция базового класса - C++
Как вызвать функцию базового класса для объекта производного класса, если в производном классе эта функция была замещена?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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() и тоже будет работать, весь вопрос в том, для чего это тебе надо, и как ты эти классы собираешься использовать в дальнейшем.
Yandex
Объявления
19.06.2014, 06:16     Не создается указатель из-за базового класса с конструктором
Ответ Создать тему
Опции темы

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