笔记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)
类型转换运算符
operaor type() const
必须为类的成员函数,不能声明返回类型,形参列表为空