Форум программистов, компьютерный форум 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++) { подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
09.04.2013, 09:21     Создать абстрактный класс Vehicle
Olivеr, почему у вас класс-родитель имеет все характеристики? Он же награждает ими те классы, которым они не нужны. Это некорректно.

Задача откровенно на декомпозицию и выявление общих характеристик объектов.
Реализаций бесконечное количество, предлагаю вот такую, с выделением двух дополнительных "интерфейсов".
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
#include <iostream>
 
// "интерфейс", умеющий работать с координатами
class Placable {
 public:
  Placable() : latitude(0), longitude(0) {}
  Placable(double latitude, double longitude) : latitude(latitude),
    longitude(longitude) {}
  double getLatitude() const { return latitude; }
  double getLongitude() const { return longitude; }
  void setLatitude(double value) { latitude = value; }
  void setLongitude(double value) { longitude = value; }
 private:
  double latitude, longitude;
};
 
// "интерфейс" для работы с количеством мест
class PassengerTransporter {
 public:
  PassengerTransporter() : numberOfSeats(0) {}
  PassengerTransporter(int numberOfSeats)
    : numberOfSeats(numberOfSeats) {}
  int getNumberOfSeats() const { return numberOfSeats; }
  void setNumberOfSeats(int value) { numberOfSeats = value; }
 private:
  int numberOfSeats;
};
 
class Vehicle : public Placable {
 public:
  Vehicle() : Placable(), cost(0), speed(0), year(0) {}
  Vehicle(int cost, int speed, int year) : Placable(), cost(cost),
    speed(speed), year(year) {}
  int getCost() const { return cost; }
  int getSpeed() const { return speed; }
  int getYear() const { return year; }
  void setCost(int value) { cost = value; }
  void setSpeed(int value) { speed = value; }
  void setYear(int value) { year = value; }
 private:
  int cost;
  int speed;
  int year;
};
 
class Plain : public Vehicle, public PassengerTransporter {
 public:
  Plain() : Vehicle(), PassengerTransporter(), height(0) {}
  Plain(int cost, int speed, int year, int height)
    : Vehicle(cost, speed, year), PassengerTransporter(),
    height(height) {}
  int getHeight() const { return height; }
  void setHeight(int value) { height = value; }
 private:
  int height;
};
 
class Ship : public Vehicle, public PassengerTransporter {
 public:
  Ship() : Vehicle(), PassengerTransporter() {}
  Ship(int cost, int speed, int year, int homePort)
    : Vehicle(cost, speed, year), PassengerTransporter(),
    homePort(homePort) {}
  int getHomePort() const { return homePort; }
  void setHomePort(int value) { homePort = value; }
 private:
  int homePort;
};
 
class Car : public Vehicle {
  Car() : Vehicle() {}
  Car(int cost, int speed, int year) : Vehicle(cost, speed, year) {}
};
 
int main(int argc, char *argv[]) {
 
 
  std::cin.get();
  return 0;
}
 
Текущее время: 05:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru