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

Создать класс «Авто», Наследование - C++

Восстановить пароль Регистрация
 
Jman
 Аватар для Jman
27 / 27 / 4
Регистрация: 11.10.2015
Сообщений: 275
Завершенные тесты: 1
26.07.2016, 08:46     Создать класс «Авто», Наследование #1
Приветствую... Помогите однотипную задачку решить, только с наследованием.
Создать класс «Авто», с полями «марка», «максимальная скорость», «тип
коробки передач» и функцию - член «вывод информации». Сделать для него наследуемый его класс
«грузовик»
Пока смог набросать только такой бред... Тямы не хватает решить полностью. Помогите пожалуйста.
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
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cmath>
#include <conio.h>
 
using namespace std;
 
class Car 
{
protected:
        char model[20];
        int max_speed;
        char gear[50];
public:
    virtual void info() = 0;
};
 
class Auto : public Car 
{   
    void info() 
    {
        cout << "Скорость: " << max_speed << endl;
    }
};
 
class Truck : public Car
{
    int speed= 200;
    void info()
    {
        cout << "Масса: " << speed<< endl;
    }
};
 
int main() {
    setlocale(0, "");
    Car *obj;
    obj = new Auto;
    obj->info();
    delete obj;
    obj = new Truck;
    obj->info();
    delete obj;
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kylroma
Одессит
 Аватар для kylroma
44 / 44 / 18
Регистрация: 30.12.2013
Сообщений: 203
Записей в блоге: 1
Завершенные тесты: 1
26.07.2016, 09:09     Создать класс «Авто», Наследование #2
а чего в наследниках метод info() стоит в private?

Добавлено через 16 минут
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Car
{
protected:
        char *model;
        int max_speed;
        char *gear;
public:
    Car(const char *mod, int speed, const char *g) : model((char*)mod), max_speed(speed), gear((char*)g)
    {
 
    }
    virtual void info() const = 0;
};
 
class Auto : public Car
{
public:
    Auto(const char *mod, int speed, const char *g) : Car(mod, speed, g){}
    void info() const
    {
        cout << "Auto: " << max_speed << endl;
    }
};
 
class Truck : public Car
{
public:
    Truck(const char *mod, int speed, const char *g) : Car(mod, speed, g){}
    void info() const
    {
        cout << "Truck: " << max_speed<< endl;
    }
};
 
int main() {
    setlocale(0, "");
    Car *obj;
    obj = new Auto("BMW", 220, "Auto");
    obj->info();
    delete obj;
    obj = new Truck("TZ", 75, "Auto");
    obj->info();
    delete obj;
    _getch();
    return 0;
}
maks242
46 / 20 / 7
Регистрация: 01.11.2013
Сообщений: 233
Завершенные тесты: 2
26.07.2016, 09:16     Создать класс «Авто», Наследование #3
Собственно, кроме того, что у вас не инициализированная переменная max_speed, проблем в вашем коде я не вижу. Уточните, пожалуйста, с чем вам нужна помощь.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2135 / 968 / 223
Регистрация: 30.11.2013
Сообщений: 3,236
26.07.2016, 11:11     Создать класс «Авто», Наследование #4
Цитата Сообщение от kylroma Посмотреть сообщение
а чего в наследниках метод info() стоит в private?
Трюк такой есть для предотвращения загромажденния интерфейса класса
Yandex
Объявления
26.07.2016, 11:11     Создать класс «Авто», Наследование
Ответ Создать тему
Опции темы

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