如果我有与此类似的课程:
namespace Matrix {
class Matrix;
class Vector {
public:
//i want to create a vector the same size as contents with the same values
Vector(const std::vector<ValueType>& contents);
private:
std::vector<ValueType> contents;
}
当内容通过构造函数传递时,它是否会自动复制到我在类中定义的称为内容的向量?还是我必须在构造函数定义中要做一些事情以实现该目标?
答案 0 :(得分:0)
不,您不会仅由于构造函数具有参数而获得自动复制。您可以这样写:
Vector(const std::vector<ValueType>& contents_) : contents{contents_} { };
将执行复制。但是,由于以下两个原因,整个方法并不是一个好主意:
const &
将产生一个额外的副本。