假设我正在用STL编写C++人员管理系统

我有一个名为StaffMember的实体类:

class StaffMember
{
  //
}

还有一个名为Staff的存储库:
class Staff
{
  private:
    std::vector<StaffMember> staffMembers;
}

我怎么知道应该将staffMembers声明为std::vector<StaffMember>还是std::vector<StaffMember>*

作为指针,我需要在~Staff()内删除它,否则就不需要。

两者都可以使用,但问题是,我会选择哪一个?将来出现此问题时,我可以使用一条通用规则吗?

最佳答案

通常按值(std::vector<StaffMember>),除非您需要共享它。即使确实需要共享它,智能指针也比原始指针好得多。

编译防火墙是个异常(exception)(例如PIMPL)。

关于c++ - 我应该将Vector <>声明为Vector <> *吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13283250/

10-09 23:56
查看更多