对于仅包含向量元素的 class 的 c'tor d'tor,默认值是否足够?
is default enough for a c'tor d'tor of a class with vector elements only?
我有一个名为 Item
的 class,它有两个向量作为私有元素
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 =,
但这足够了还是我应该为他们每个人写正文?
您不需要自己编写,但我会修改您的构造函数的声明。
Item(const std::vector<std::string>& v, const std::vector<std::string>& e):V(v), E(e){}
总是更喜欢通过 const 引用传递大对象而不是通过值。按值传递对象可能会导致不必要的对象复制。
我有一个名为 Item
的 class,它有两个向量作为私有元素
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 =, 但这足够了还是我应该为他们每个人写正文?
您不需要自己编写,但我会修改您的构造函数的声明。
Item(const std::vector<std::string>& v, const std::vector<std::string>& e):V(v), E(e){}
总是更喜欢通过 const 引用传递大对象而不是通过值。按值传递对象可能会导致不必要的对象复制。