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

Создать абстрактный класс Vehicle - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать класс для работы с одномерным массивом строк фиксированной длины. Обеспечить следующие возможности: http://www.cyberforum.ru/cpp-beginners/thread832108.html
Описать класс для работы с одномерным массивом строк фиксированной длины. Обеспечить следующие возможности: • задание произвольных целых границ индексов при создании объекта; • обращение к отдельной строке массива по индексу с контролем выхода за пределы массива; • выполнение операций поэлементного сцепления двух массивов с образованием нового массива; • выполнение операций слияния двух...
C++ Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть) Здравствуйте! Помогите пожалуйста разработать функцию, которая удаляет из стека первый отрицательный элемент, если такой есть. Если не сложно, то ещё учитывая что: "Для организации стека нужно использовать структуру с функциями. Реализовать все операции со стеком через функции. В проекте объявления, определение функций и реализацию алгоритма выполнять в отдельных модулях." http://www.cyberforum.ru/cpp-beginners/thread832104.html
Массив целых чисел (Удалить все двузначные элементы,являющиеся простыми числами) C++
Удалить из массива целых чисел все двузначные элементы,являющиеся простыми числами .Найти среднее арифметическое элементов массива до и после удаления.Проверить,изменился ли максимальный элемент массива.
Не запускает задачу C++
В VS создал пустой проект win32, написал код #include <iostream> #include <vector> using namespace std; template <class T> void prepare_vector (vector <T>*v) { for (usingned i=o; i<v->size(); ++i)
C++ Определить функцию, находящую сумму элементов массива http://www.cyberforum.ru/cpp-beginners/thread832056.html
10. Определить функцию, находящую сумму элементов массива. Выполнить перегрузку функции для следующих типов параметров: 10.1. Одномерный массив типа int размерностью N. 10.2. Одномерный массив типа float размерностью N. 10.3. Одномерный массив типа double размерностью N. это сделать через монгофайловый проект(модуль) в С++...не могу понять как((
C++ Найти ошибку в части кода Доброго времени суток. В этой части кода не распознает If и then, выдает : If: идентификатор не найден; then: необъявленный идентификатор. Как задавать? void change(int a, int n, int m) { int i,j,k; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
09.04.2013, 12:35     Создать абстрактный класс Vehicle
Цитата Сообщение от lemegeton Посмотреть сообщение
Olivеr, почему у вас класс-родитель имеет все характеристики? Он же награждает ими те классы, которым они не нужны. Это некорректно.
Как мне кажется, такие характеристики как
C++
1
2
3
4
5
6
7
8
    string model;
    float enginePower;//это можно переделать в класс
    unsigned seats; //а это лучше сделать как у Вас
    float maxSpeed;
    Color color;
    float weight;
    unsigned releaseYear;
    float price;
являются общими для классов автомобиля, самолета и корабля.

Цитата Сообщение от ForEveR Посмотреть сообщение
Массив прям ведь просится быть статиком да и констом вцелом
Согласен.

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <iostream>
#include <string>
#include <iomanip>
 
using namespace std;
 
unsigned table(23);
enum Colors {red = 0, black, blue, green, yellow, white, unknown};
 
class Color
{
public:
    Color(Colors _col): col(_col) {}
    Color(): col(unknown) {}
    string to_string() {    return arr[col];    }
    static const string arr[];
private:
    Colors col;
};
 
const string Color::arr[] = {"red", "black", "blue", "green", "yellow", "white", "unknown"};
 
class Vehicle
{
public:
    Vehicle():
        model(), enginePower(0), seats(0), maxSpeed(0), color(),
        weight(0), releaseYear(0), price(0) {cout<<"Vehicle standard constructor"<<endl;}
 
    Vehicle(const string&, float, unsigned, float, Color, float, unsigned, float);
 
    Vehicle(const Vehicle&);
 
    void setModel(const string &str) {  model = str;    };
    void setColor(Color col) {  color = col;    };
    void setPrice(float val) {  price = val;    };
    float getWeight() const {   return weight;  };
 
protected:
    string model;
    float enginePower;
    unsigned seats;
    float maxSpeed;
    Color color;
    float weight;
    unsigned releaseYear;
    float price;
 
    void print();
};
 
class Plane: public Vehicle
{
public:
    Plane(): Vehicle(), height(0), crewCount(0) {cout<<"Plane standard constructor"<<endl;}
 
    Plane(float, unsigned, const string&, float, unsigned, float, Color, float, unsigned, float);
 
    Plane(const Plane&);
 
    void print();
    void setHeight(float val) { height = val;   };
    float getHeight() const {   return height;  };
 
private:
    float height;
    unsigned crewCount;
};
 
Vehicle::Vehicle(const string &_model, float _enPwr, unsigned _seats,
                 float _maxSpd, Color _col, float _weight, unsigned _relYear, float _price):
    model(_model), enginePower(_enPwr), seats(_seats), maxSpeed(_maxSpd), color(_col),
    weight(_weight), releaseYear(_relYear), price(_price) {}
 
Plane::Plane(float _height, unsigned _crews, const string &_model, float _enPwr, unsigned _seats,
            float _maxSpd, Color _col, float _weight, unsigned _relYear, float _price):
    Vehicle(_model, _enPwr, _seats, _maxSpd, _col, _weight, _relYear, _price),
    height(_height), crewCount(_crews) {}
 
Vehicle::Vehicle(const Vehicle &Obj):
    model(Obj.model), enginePower(Obj.enginePower), seats(Obj.seats), maxSpeed(Obj.maxSpeed),
    color(Obj.color), weight(Obj.weight), releaseYear(Obj.releaseYear), price(Obj.price) {cout<<"Vehicle copy constructor"<<endl;}
 
Plane::Plane(const Plane &Obj):
    Vehicle(Obj), height(Obj.height), crewCount(Obj.crewCount) {cout<<"Plane copy constructor"<<endl;}
 
void Vehicle::print()
{
    cout<<fixed<<setprecision(1);
    cout<<setw(table)<<left;
    cout<<setw(table)<<left<<"Модель: "<<model<<endl
        <<setw(table)<<left<<"Мощность двигателя: "<<enginePower<<endl
        <<setw(table)<<left<<"Мест: "<<seats<<endl
        <<setw(table)<<left<<"Максимальная скорость: "<<maxSpeed<<endl
        <<setw(table)<<left<<"Цвет: "<<color.to_string()<<endl
        <<setw(table)<<left<<"Вес: "<<weight<<endl
        <<setw(table)<<left<<"Год выпуска: "<<releaseYear<<endl
        <<setw(table)<<left<<"Цена: "<<price<<endl;
}
 
void Plane::print()
{
    Vehicle::print();
    cout<<setw(table)<<left<<"Высота: "<<height<<endl
        <<setw(table)<<left<<"Экипаж: "<<crewCount<<endl;
}
int main()
{
    setlocale(LC_CTYPE, "");
    cin.get();
    return 0;
}
 
Текущее время: 17:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru