Как написать класс с его членом является вектором указателей на собственный определенный класс

Я новичок в C++ и пытаюсь написать класс CarRental, который содержит вектор указателей на базовый класс Car. Вот класс автомобилей.

class Car{
public:
    Car():mPlate(""), mBrand(""){}//constructor
    Car(string p, string b): mPlate(p), mBrand(b){} //constructor
    virtual ~Car(){}//destructor

    const string plate() const;
    const string brand() const;

    virtual int numPassengers() = 0;

protected:
    string mPlate;
    string mBrand;
};

const string Car::plate() const{
    return mPlate;
}

const string Car::brand() const{
    return mBrand;
};

И мне нужно написать класс CarRental, который содержит контейнер для хранения автомобилей. Например,

class CarRental{
public:
    CarRental(vector<Car*> cars){mCars = cars;};
    const vector<Car*>& getCars() const;
    void addCar(Car*);
private:
    vector<Car*> mCars;
};

const vector<Car*>& CarRental::getCars() const{
    return mCars;
}

void CarRental::addCar(Car* c){
    mCars.push_back(c);
}

Сомневаюсь, что класс CarRental я написал правильно. Я думаю, нужно ли мне написать свой собственный конструктор копирования. И к БОЛЬШОМУ ТРЕТИЙ, мне также нужен оператор присваивания и деструктор? Будет ли три утечки памяти? Как насчет безопасности исключений?

0 ответов

Другие вопросы по тегам