编写Vec类

上面的解释了为什么两个函数仅仅返回值不同为什么还能重载。

 对象的复制

隐式地复制

double d;
 vector<int> vi;
d = median(vi); // copy vi into the parameter in median
string line;
vector<string> words = split(line); // copy the return value from split into words
 
显式的复制
vector<Student_info> vs;
vector<Student_info> v2 = vs; // copy vs into v2

赋值操作符
将一个对象的值赋给同一数据类型的另一个对象
声明
template <typename T> class Vec {
public:
Vec& operator=(const Vec&);
// as before
};
 
 赋值 vs. 初始化
赋值将重写一个已存在对象的值,调用operator =;
初始化将创建一个新对象,同时为此新对象提供初始值,调用复制构造函数
v
vector<string> split(const string&);  // function declaration
vector<string> v;                     // initialization
 
v = split(line); // 先复制返回对象,再用此拷贝进行赋值
 
 
原文地址:https://www.cnblogs.com/youxin/p/2542286.html