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

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

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

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

07.10.2013, 09:04. Просмотров 342. Ответов 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 всё было нормально, сейчас вот такие ошибки полезли. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 09:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при наследовании класса (C++):

Ошибка: undefined reference to при наследовании класса - C++
Здравствуйте форумчане. Пытаюсь наследовать класс MyService от OAuthService и получаю множество ошибок: Ошибка: undefined reference to...

Ошибки при наследовании класса - C++
Доброго времени суток!Возникли ошибки при компиляции кода Задание было такое:Создать абстрактный базовый класс Body (тело) с виртуальными...

Деструкторы при наследовании от абстрактного класса - C++
Нужно ли что то писать в деструкторах ~StringObject(){}; ~DoubleObject(){} и нужно ли создавать виртуальный деструктор класса...

Инициализация полей класса при наследовании - C++
Всем добрый вечер. Возникла у меня небольшая задачка, которую никак не могу решить. Имеем базовый класс с константным полем: class A{...

Ошибки при наследовании класса от вектора - C++
Пишу программу по СМО, столкнулся с трудностью при попытке сделать наследование очередью Cqueue вектора из STL. Проблема состоит в том,...

Segmentation fault при наследовании класса - C++
Доброго времени суток! Имею класс Initialise и класс Environment. В первом создаются экземпляры движка и прочие сопутствующие вещи....

4
Croessmah
Эксперт CЭксперт С++
13501 / 7658 / 865
Регистрация: 27.09.2012
Сообщений: 18,846
Записей в блоге: 3
Завершенные тесты: 1
07.10.2013, 09:56 #2
C++
1
2
3
fifo(int inSize) : stack ( inSize ){
 
}
1
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 481
07.10.2013, 10:02  [ТС] #3
спасибо большое. а не могли бы объяснить почему именно такая форма записи?
0
Croessmah
Эксперт CЭксперт С++
13501 / 7658 / 865
Регистрация: 27.09.2012
Сообщений: 18,846
Записей в блоге: 3
Завершенные тесты: 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;
нет необходимости, т.к. конструктор базового класса делает всё тоже самое.
1
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 481
07.10.2013, 10:14  [ТС] #5
Большое спасибо. Теперь многое стало на свои места)
0
07.10.2013, 10:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2013, 10:14
Привет! Вот еще темы с ответами:

Доступ к переменным базового класса при наследовании - C++
Есть следующий код class Base { protected: int x; Base* enemy; public: Base() {}

Доступ к объекту базового класса при закрытом наследовании - C++
Есть класс Pair из стандартной библиотеки. Он у меня содержит 2 массива valarray. От класса Pair я создаю наследника Wine. В классе Wine...

Ошибка при наследовании - C++
Привет! Ни как не могу разобраться, в чём дело. Создал 2 класса: Base и Derived, где Derived наследует Base. Но при компиляции возникает...

Ошибка при наследовании - C++
Имеется архитектура вида: класс "человек", от него производные "препод" и "член приемной комиссии". От их двоих производный класс "Препод и...


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

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

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