Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Конструктор, деструктор и функция печати для класса

Автор:   •  Декабрь 7, 2022  •  Лабораторная работа  •  706 Слов (3 Страниц)  •  184 Просмотры

Страница 1 из 3

        Цель работы: научиться определять конструктор, деструктор и функцию печати для класса. Научиться определять виртуальные функции и работать с базовым классом и классом-наследником.

        Задание.  Создать класс автомобиль, имеющий марку (указатель на строку), число цилиндров, мощность. Определить конструктор, деструктор и функцию печати. Создать public-производный класс – грузовики, имеющий грузоподъемность кузова. Определить конструктор с разным числом параметров, деструктор, функцию печати. Определить функции переназначения марки и грузоподъемности как виртуальные. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов.

        Код файла Source.cpp:

#include <iostream>

#include "Truck.hpp"

int main() {

    Truck truck{ "Mersedes", 6, 394, 18.0 };

    std::cout

        << truck;

    truck.setBrand("MAN");

    std::cout

        << truck;

    return 0;

}

        

        Код заголовочного файла Truck.hpp:

#ifndef TRUCK_HPP

#define TRUCK_HPP

#include "Machine.hpp"

class Truck : public Machine {

public:

    Truck();

    Truck(std::string brand, std::size_t cylinders, double power, double capacity);

    Truck(const Truck& truck);

    ~Truck();

    Truck& operator=(const Truck& rhs);

    friend std::ostream& operator<<(std::ostream& os, const Truck& rhs);

    void setBrand(std::string brand);

private:

    double m_capacity;

};

#endif // TRUCK_HPP

        Код файла Truck.cpp:

#include "Truck.hpp"

Truck::Truck()

    : Machine(), m_capacity(0.0) {

}

Truck::Truck(std::string brand, std::size_t cylinders, double power, double capacity)

    : Machine(brand, cylinders, power), m_capacity(capacity) {

}

Truck::Truck(const Truck& truck)

    : Machine(truck) {

    m_capacity = truck.m_capacity;

}

Truck::~Truck() {

}

Truck& Truck::operator=(const Truck& rhs) {

    if (this == &rhs) {

        return *this;

    }

    Machine::operator=(rhs);

    m_capacity = rhs.m_capacity;

    return *this;

}

std::ostream& operator<<(std::ostream& os, const Truck& rhs) {

    os

        << "Brand: " << rhs.getBrand() << std::endl

        << "Cylinders: " << rhs.getCylinders() << std::endl

...

Скачать:   txt (5.1 Kb)   pdf (104.7 Kb)   docx (25.7 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club