假设我正在用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/