Достаточно ли по умолчанию для c или класса только с векторными элементами? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть класс под названием 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, скопируйте c 'tor и operator =, но достаточно ли этого или я должен писать тела для каждого из них?

1 Ответ

1 голос
/ 04 августа 2020

Вам не нужно писать свое собственное, но я бы изменил объявление вашего конструктора.

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

Всегда предпочитайте передавать большой объект по константной ссылке на по значению. Передача объекта по значению может вызвать ненужную копию объекта.

...