提问者:小点点

对于只包含向量元素的类的c'tor d'tor,默认值足够吗?


我有一个名为item的类,它有两个向量作为私有元素

class Item
{
  private:
     std::vector<std::string> V;
     std::vector<std::string> E;
  public:
     Item(std::vector<std::string> V,std::vector<std::string> E): V(V),E(E){}
     Item(const Item& Item)=default;
     ~Item()=default;
      Item& operator=(const Item& Item)=default;

};

如您所见,我使用了d'tor的默认值,copy c'tor和operator=,但是这足够了吗?还是应该为它们写主体?


共1个答案

匿名用户

您不需要自己编写,但我会修改构造函数的声明。

Item(const std::vector<std::string>& v, const std::vector<std::string>& e):V(v), E(e){}

总是倾向于按常量传递大型对象引用到按值。 按值传递对象可能导致不必要的对象复制。