Создаю программу для тренировки с классами на с++. Но при создании класса- наследника возникают ошибки.
class dog {
public:
dog(string, string, float );
void show ();
private:
string name;
string poroda;
float cena;
};
class hotdog:public dog{
hotdog(string name, string poroda, string cena): dog(name, poroda, cena);
}
dog::dog(string name1, string poroda1, float cena1)
{dog::name=name1;
dog::poroda=poroda1;
dog::cena=cena1;};
void dog::show()
{cout<<"Sobaka "<<name<<" porodi "<<poroda<<" po cene "<<cena<<"$ "<<endl;
во первых пишет не допускается указание типа возвращаемого значения конструктора. А также ошибки, походу, в синтаксисе контруктора класса- наследника. В чем именно я ошибся?
Другие языки программирования и технологии
Ошибка в программном коде с++
Ты забыл точку с запятой после производного класса, и компилятор решил, что это возвращаемый тип конструктора.
И тело конструктора производного не указал.
И тело конструктора производного не указал.
dog(string, string, float );
hotdog(string name, string poroda, string cena): dog(name, poroda, cena);
Базовому конструктору передаешь тип string в 3-м параметре, когда нужен float. И вообще косяками обилует
hotdog(string name, string poroda, string cena): dog(name, poroda, cena);
Базовому конструктору передаешь тип string в 3-м параметре, когда нужен float. И вообще косяками обилует
Запомни, НИКОГДА, слышишь, НИКОГДА не выкладывай сюда код. Он тут обрезанный будет.
Во-первых, у тебя у дога с ходдогом разные типы параметров в конструкторах. При создании сосиски ты передаешь символьную цену сосиски в числовую цену собаки, являющейся прообразом-сырьем для сосиски.
Ну и во-вторых, в конструкторе сосиски вообще какая-то фигня написана. Либо не пытайся вызвать конструктор собаки (тогда это будет function declaration), либо уж определяй конструктор сосиски до конца (тогда "{}" вместо ";" нужно) . А сейчас там какой-то гибрид function declaration и function definition написан.
Это то, что бросилось в глаза.
А по стилю - наследование было бы норм, если бы сосиска являлась частным случаем собаки.
А если собачатина - просто сырье, да еще и не вся собака пошла на изготовление одной сосиски, то разумнее было бы какой-нибудь умный указатель на собаку внутрь сосиски положить.
Ну и во-вторых, в конструкторе сосиски вообще какая-то фигня написана. Либо не пытайся вызвать конструктор собаки (тогда это будет function declaration), либо уж определяй конструктор сосиски до конца (тогда "{}" вместо ";" нужно) . А сейчас там какой-то гибрид function declaration и function definition написан.
Это то, что бросилось в глаза.
А по стилю - наследование было бы норм, если бы сосиска являлась частным случаем собаки.
А если собачатина - просто сырье, да еще и не вся собака пошла на изготовление одной сосиски, то разумнее было бы какой-нибудь умный указатель на собаку внутрь сосиски положить.
Кем надо быть, чтобы хотдог унаследовать от собаки?
Хотя некоторая логика всё же есть: кличка, порода и цена, за которую купили собаку, скрыта от хотдога, который сделали из этой собаки.. .
ЗЫ
В учебниках по ООП не пишут об основной проблеме наследования:
Если есть иерархия животное<-медведь, то решение от него наследовать плюшевого мишку - неправильное, так как он не ведёт себя, как животное.
Хотя некоторая логика всё же есть: кличка, порода и цена, за которую купили собаку, скрыта от хотдога, который сделали из этой собаки.. .
ЗЫ
В учебниках по ООП не пишут об основной проблеме наследования:
Если есть иерархия животное<-медведь, то решение от него наследовать плюшевого мишку - неправильное, так как он не ведёт себя, как животное.
скрин дебаггера компилятора приведи, не указывайте тип конструктора и деструктора
Похожие вопросы
- Пожалуйста проверьте, правильно ли составлен программный код, выходит ошибка "Индекс находится вне границы массива
- Программа-эта и есть программный код тоесть программный код является программой
- Напишите программный код для урока информатики 11 класса.
- Исправьте мне программный код в visual Basiсе пожалуйста!
- Покажите пример программы 1С, в виде программного кода. интересно посмотреть..
- Как составить программные коды на Паскаль к этой задаче?
- Турбо-паскаль. Пожалуйста, напишите программный код!...=)
- Помогите исправить программный код на Pascal (индексно-последовательный поиск) вопрос полностью в средине
- О великие мысли ИТ, подскажите, по какому действующему стандарту нужно оформлять программный код?
- В какой ситуации программист обязан оставить программный код организации в которой он работает?