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

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

Войти
Регистрация
Восстановить пароль
 
dalay_lama
65 / 65 / 7
Регистрация: 22.09.2012
Сообщений: 440
#1

Ошибка при наследовании класса - C++

07.10.2013, 09:04. Просмотров 311. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток, пытаюсь отнаследовать класс, вот такой код я смастерил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef CLASS_H_
#define CLASS_H_
 
class stack
{
protected:
    int *turn;
    int count, size;
public:
 
    void pop(int var);
    int push();
    void ShowSize();
    stack(int inSize)
    {
        turn = new int[inSize];
        size = inSize;
        count = -1;
    }
};
 
class fifo: public stack
{
public:
    fifo(int inSize)
    {
        turn = new int[inSize];
        size = inSize;
        count = -1;
    };
    int push();
    void ShowTurn();
};
Eclipse подствечивает следующие ошибки:
строка "class stack" - candidate expects 1 argument, 0 provided;
строка "stack(int inSize)" - stack(int inSize);
и строка где фигурная скобка, сразу после "stack(int inSize)" - ошибка: нет подходящей функции для вызова
«stack::stack()»
- замечание: candidates are:

Подскажите пожалуйста, что не правильно я сделал, уже битый час не могу понять. До того, как отнаследовал класс fifo всё было нормально, сейчас вот такие ошибки полезли. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 09:04     Ошибка при наследовании класса
Посмотрите здесь:

C++ Ошибка при наследовании
C++ Ошибка при наследовании
Ошибки при наследовании класса от вектора C++
Доступ к объекту базового класса при закрытом наследовании C++
C++ Ошибка при наследовании?
C++ Ошибки при наследовании класса
C++ Ошибка: undefined reference to при наследовании класса
Деструкторы при наследовании от абстрактного класса C++
Segmentation fault при наследовании класса C++
Ошибка при наследовании C++
Доступ к переменным базового класса при наследовании C++
Ошибка при наследовании C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12877 / 7263 / 810
Регистрация: 27.09.2012
Сообщений: 17,940
Записей в блоге: 2
Завершенные тесты: 1
07.10.2013, 09:56     Ошибка при наследовании класса #2
C++
1
2
3
fifo(int inSize) : stack ( inSize ){
 
}
dalay_lama
65 / 65 / 7
Регистрация: 22.09.2012
Сообщений: 440
07.10.2013, 10:02  [ТС]     Ошибка при наследовании класса #3
спасибо большое. а не могли бы объяснить почему именно такая форма записи?
Croessmah
Модератор
Эксперт CЭксперт С++
12877 / 7263 / 810
Регистрация: 27.09.2012
Сообщений: 17,940
Записей в блоге: 2
Завершенные тесты: 1
07.10.2013, 10:08     Ошибка при наследовании класса #4
При
C++
1
2
3
fifo(int inSize){
 
};
будет вызван конструктор базового класса без аргументов. Такого конструктора в классе stack нет, отсюда и ошибка
ошибка: нет подходящей функции для вызова
«stack::stack()»
При
C++
1
2
3
fifo(int inSize) : stack ( inSize ){
 
}
Мы явно указали в списке инициализации какой конструткор базового класса вызывать.
Во "внутренностях" конструктора fifo
C++
1
2
3
        turn = new int[inSize];
        size = inSize;
        count = -1;
нет необходимости, т.к. конструктор базового класса делает всё тоже самое.
dalay_lama
65 / 65 / 7
Регистрация: 22.09.2012
Сообщений: 440
07.10.2013, 10:14  [ТС]     Ошибка при наследовании класса #5
Большое спасибо. Теперь многое стало на свои места)
Yandex
Объявления
07.10.2013, 10:14     Ошибка при наследовании класса
Ответ Создать тему
Опции темы

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