我使用这个项目有一段时间我使用的是独特的指针,但我发现自己不确定我是否正确使用它们。
我最大的疑问是在构造函数或方法中使用这些唯一指针时,这里有一些例子:
我有这个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的方式还是有其他方法可以做到这一点?
感谢您的帮助。