0 / 0 / 1
Регистрация: 04.02.2016
Сообщений: 7

Написания класса Car

04.02.2016, 12:12. Показов 655. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день. Поскольку я учусь на 1 курсе, и материал скучный , я решил сам изучать С++. Решил написать задачку: Реализовать клас Машина(4 колеса, 2 сидения, мотор) Каждый клас имеет(вагу, цвет, та индефикатор). Примечания(вага машины - это сума всех ваг компонентов). Посиле и понял что ту нужна композиция . Можете просмотреть мой код и справа где не правильно написать коменты
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
#pragma once
class Engine
{
public:
    enum Color
    {
        Green = 0,
        Red,
        Blue
    };
 
    Engine(float weight, Color color);
    virtual ~Engine() {};
    enum
    {
        ID = 1
    };
 
    virtual unsigned GetClassId() const;
    Color GetColor() const;
    virtual float GetWeight() const;
    virtual void Print() const;
 
private:
    const Color mColor;
    const float mWeight;
 
Engine::Engine(float weight, Color color)
: mWeight(weight)
, mColor(color)
{}
 
unsigned Engine::GetClassId() const
{
    return ID;
}
 
Engine::Color Engine::GetColor()const
{
    return mColor;
}
 
float Engine::GetWeight() const
{
    return mWeight;
}
 
void Engine::Print() const
{
    std::cout << "Seat -" << "weight: " << GetWeight() << ", color: " << GetColor() << "\n";
}
};
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
#pragma once
class Seat 
{
public:
    enum Color
    {
        Green = 0,
        Red,
        Blue
    };
 
    Seat(float weight, Color color);
    virtual ~Seat() {};
    enum
    {
        ID = 1
    };
 
    virtual unsigned GetClassId() const;
    Color GetColor() const;
    virtual float GetWeight() const;
    virtual void Print() const;
 
private:
    const Color mColor;
    const float mWeight;
};
 
Seat::Seat(float weight, Color color)
: mWeight(weight)
, mColor(color)
{}
 
unsigned Seat::GetClassId() const
{
    return ID;
}
 
Seat::Color Seat::GetColor()const
{
    return mColor;
}
 
float Seat::GetWeight() const
{
    return mWeight;
}
 
void Seat::Print() const
{
    std::cout << "Seat -" << "weight: " << GetWeight() << ", color: " << GetColor() << "\n";
}
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
#pragma once
class Wheel
{
public:
    enum Color
    {
        Green = 0,
        Red,
        Blue
    };
 
    Wheel(float weight, Color color);
    virtual ~Wheel() {};
    enum
    {
        ID = 1
    };
 
    virtual unsigned GetClassId() const;
    Color GetColor() const;
    virtual float GetWeight() const;
    virtual void Print() const;
 
private:
    const Color mColor;
    const float mWeight;
};
Wheel::Wheel(float weight, Color color)
: mWeight(weight)
, mColor(color)
{}
 
unsigned Wheel::GetClassId() const
{
    return ID;
}
 
Wheel::Color Wheel::GetColor()const
{
    return mColor;
}
 
float Wheel::GetWeight() const
{
    return mWeight;
}
 
void Wheel::Print() const
{
    std::cout << "Seat -" << "weight: " << GetWeight() << ", color: " << GetColor() << "\n";
}
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
#pragma once
#include "Engine.h"
#include "Seat.h"
#include "Wheel.h"
 
class Car
{
public:
    enum Color
    {
        Green = 0,
        Red,
        Blue
    };
 
    Car(float weight, Color color, Engine engine, Seat seat, Wheel wheel);
    virtual ~Car() {};
 
    Color GetColor() const;
    virtual float GetWeight() const;
    virtual void Print() const;
 
private:
    const Color mColor;
    const float mWeight;
    Engine mEngine;
    Seat mSeat[2];
    Wheel mWheel[4];
};
Car::Car(float weight, Color color, Engine engine, Seat seat, Wheel wheel)
: mWeight(weight)
, mColor(color)
, mEngine(engine)
, mSeat(seat[2])
, mWheel(wheel[4])
{}
 
 
Car::Color Car::GetColor()const
{
    return mColor;
}
 
float Car::GetWeight() const
{
    return (Engine.GetWeight() + Seat.GetWeight() + Wheel.GetWeight());
}
 
void Engine::Print() const
{
    std::cout << "Car -" << "weight: " << GetWeight() << ", color: " << GetColor() << "\n";
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2016, 12:12
Ответы с готовыми решениями:

Странный SIGSEGV, или что зависит от порядка написания интерфейса класса
Есть некий класс,и в нем в секции private записано следующее: private: Value *val; Types var_type; ...

Класс Car
Я создал класс Car(при нажатие кнопки ускоряет машину и тд). Помогите дописать свои процедуры пожалуста(можно любые). Буду очень...

Класс Car. Наследование
1) У нас есть class Car --&gt; св-ва maxspeed, currentspeed. Методы Getmaxs(), Getcurrs() которые соответственно возвр. maxspeed и...

2
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
04.02.2016, 13:25
Цитата Сообщение от FootballMan Посмотреть сообщение
C++
1
2
3
4
float Car::GetWeight() const
{
* * return (Engine.GetWeight() + Seat.GetWeight() + Wheel.GetWeight());
}
Seat.GetWeight() + Wheel.GetWeight()); это же массивы.


Ну и если у всех есть цвет, все, то можно вынести это еще в отдельный класс, а потом наследовать. Да выход что это все один и тот же класс, только разные имена.


Цитата Сообщение от FootballMan Посмотреть сообщение
C++
1
2
3
4
enum
* * {
* * * * ID = 1
* * };
ну еще мне не ясно что это за штуковина в каждом классе? Если это общее для всех колес то сделай статик, и почему оно повторяется в каждом классе и равно везде 1 ?!
0
0 / 0 / 1
Регистрация: 04.02.2016
Сообщений: 7
04.02.2016, 13:44  [ТС]
_Valera_, то я индефикатор написал, сорян я забыл поменять везде. там должно быть в каждом разные значения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.02.2016, 13:44
Помогаю со студенческими работами здесь

Разработать класс Car (автомобиль)
Разработать класс Car (автомобиль). Объявить переменные типа этого класса. Определить данные и методы.

Классы Bar и Car, что не так?
В общем, сижу и пытаюсь освоить ООП, но тут проблемка Надо создать 2 класса Bus и Car Для Car нужны параметры скорости и марки....

Создайте класс car, содержащий информацию об автомобилях
Создайте класс car, содержащий информацию об автомобилях. Закрытыми элементами класса будут: название модели, изготовитель, количество...

[linker error] undefined reference to 'vtable for Car'
доброго времени вам. помогите, пожалуйста, с задачей разобраться. хочу сделать пример на паттерн &quot;абстрактная фабрика&quot;. фабрика...

Создать массив из структур Car и найти в нем самую дешевую машину
Создать структуру данных &quot;Car&quot;, содержащую следующие поля: торговая марка, модель, тип кузова, количество мест в салоне, стоимость. Создать...


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

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

Новые блоги и статьи
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru