笔记5-拷贝赋值构造函数\运算符重载\

拷贝构造函数

F(const &F)

string s = "AAA" ; 拷贝初始化
string s("AAA");    直接初始化

拷贝初始化发生的时间:
1. 用等号定义变量时
2. 将一个对象作为实参传递给一个非引用类型的形参
3. 从一个返回类型为非引用类型的函数返回一个对象
4. 用花括号列表初始化一个数组的元素或一个聚合类的成员

析构函数

三五法则

需要析构函数的类一定也需要拷贝及赋值构造函数
需要拷贝构造函数的类也一定需要赋值构造函数


=default 只能用在默认构造函数或默认拷贝、析构构造函数中
=delete 用来阻止拷贝或赋值,不能删除析构函数

运算符重载

ostream & operator << (ostream &os,const class &A)
istream & operator >> (istream &is, class &A)
前置及后置运算符:
前置:class & operator ++ ()
后置:class & operatpr ++ (int)

笔记5-拷贝赋值构造函数\运算符重载\

类型转换运算符

operaor type() const
必须为类的成员函数,不能声明返回类型,形参列表为空