使用unique_ptr

时间:2017-07-18 19:05:04

标签: c++ c++11 unique-ptr

我使用这个项目有一段时间我使用的是独特的指针,但我发现自己不确定我是否正确使用它们。

我最大的疑问是在构造函数或方法中使用这些唯一指针时,这里有一些例子:

我有这个Event类,它采用了仿真,火车,火车站和时间对象的unique_ptr:

class Event {
public:
    Event(unique_ptr<Simulation> simulation, unique_ptr<Train> train, unique_ptr<TrainStation> station, unique_ptr<Time> t)
        : sim(move(simulation)), tåg(move(train)), tStation(move(station)), time(move(t)) {};

    virtual ~Event() {};


    virtual void processEvent() = 0;


    unique_ptr<Time> getTime() const {
        return time;
    }

    void printEvent();

protected:
    unique_ptr<Simulation> sim;
    unique_ptr<Train> tåg;
    unique_ptr<TrainStation> tStation;
    unique_ptr<Time> time;
};

Event类有多个子类,下面是其中一个的例子:

class AssembleEvent : public Event
{
public:
    AssembleEvent(unique_ptr<Simulation> simulation, unique_ptr<Train> train, unique_ptr<TrainStation> station, unique_ptr<Time> time) 
        : Event(move(simulation), move(train), move(station), move(time)) {};
    virtual ~AssembleEvent() {};

    virtual void processEvent();
};

所以我的问题是,我是否以正确的方式使用unique_ptr?这是使用unique_ptr的方式还是有其他方法可以做到这一点?

感谢您的帮助。

0 个答案:

没有答案