2月8日学习c++primer记录

1.重载赋值运算符

名字由operator关键字后接想要定义的运算符的符号组成,所以赋值运算符就是一个名为:operator=的函数,运算符函数也有一个返回类型和参数列表。

class Foo
{
public:
    Foo& operator=(const Foo&);//赋值运算符
//...
}

2月5日学习c++primer记录

1.可以用new返回的指针来初始化一个智能指针,接受指针参数的智能指针构造函数是explicit的,因此不能将一个内置指针隐式转化成智能指针,必须使用直接初始化形式。

shared_ptr<int> p1 = new(1024);//错误,隐式地初始化
shared_ptr<int> p2(new(1024));//正确,直接初始化形式

2.unique_ptr不支持普通的赋值与拷贝,但是提供了release、reset等函数

u.release()//u放弃对指针的控制权,返回指针,并将u置为空
u.reset(q)//释放u指向的对象,令u指向q