随笔分类 -  C++primer

C++primer第五版读书笔记
摘要:1.shared_ptr:允许多个指针指向同一个对象 初始化方式: shared_ptr p1 = make_shared(10);//最好使用这种方式 shared_ptr p2(new int(20)); //只能用直接初始化方式 和普通指针有一样的操作,*,->,swap等 支持拷贝与赋值与自定义删除器,特别地: p.get()能返回p中保存的指针,... 阅读全文
posted @ 2017-12-02 22:11 CoderZSL 阅读(187) 评论(0) 推荐(0)
摘要:1.左值和右值 左值:非临时对象,可以在多条语句里面使用的对象。 右值:临时对象,只能在本条语句里面使用。 如:int i = 0;//i是持久对象,能在多条语句里面使用,0是临时对象,只能在本条语句里面使用 2.左值引用和右值引用 在C++11以前,右值不能被引用,最大限度就是用常量引用绑定一个右值:const int &a = 1 左值引用:& 右值引用:&& 如下: void proces... 阅读全文
posted @ 2017-12-02 20:02 CoderZSL 阅读(167) 评论(0) 推荐(0)
摘要:1.不可以重载的运算符: ::, .*, ., ? :。 2.一元重载:只有一个参数 二元重载:有两个参数,左侧运算对象传递第一个参数,右侧运算对象传递第二个参数。 在类外:void operator+(int, int) 类内:Name operator(int)。因为会有一个隐含的this指针, 阅读全文
posted @ 2017-10-08 19:28 CoderZSL 阅读(286) 评论(0) 推荐(0)
摘要:1.类型别名 关键字typedef typedef int myInt; //myInt为int同义词 可以用myInt来声明对象 myInt a = 0; //等于int a = 0 在函数指针中typedef用处更大,以后细说 C++11新标准下,可以用using using myInt = i 阅读全文
posted @ 2017-10-07 21:50 CoderZSL 阅读(122) 评论(0) 推荐(0)
摘要:这是个好东西,Effective C++里都已说过:能用的地方尽量用,大师都这样说了,我们这些渣渣为何不遵循? const就是常量,这就有个重要的东西了:常量必须初始化 const int a = 0; const int b = get_size(); //已知有get_size()函数 cons 阅读全文
posted @ 2017-10-03 14:58 CoderZSL 阅读(115) 评论(0) 推荐(0)
摘要:2.3.1引用 在C++11标准中,增加了一个右值引用,稍微高级的东西,以后会更新。 一般来说引用都是说的左值引用。 这里就有一个问题,什么是左值,什么是右值。 简单一句话:左值长久,右值短暂 引用其实就是给对象起了另一个名字。 如: int ival = 0; int &refVal = val; 阅读全文
posted @ 2017-10-01 15:56 CoderZSL 阅读(121) 评论(0) 推荐(0)
摘要:两种选择: 类的行为像一个值:有自己的状态,拷贝一个像值的对象时,副本和原对象是完全独立的。改变副本不会改变原对象。 类的行为像一个指针:类是共享状态,当拷贝这个对象时,原对象和副本对象使用相同的底层数据,改变副本也会改变原对象。 1.行为像值的类 拷贝对象,而不是拷贝指针。 代码如下: class 阅读全文
posted @ 2017-10-01 14:30 CoderZSL 阅读(173) 评论(0) 推荐(0)
摘要:1.拷贝构造函数 基本形式:Name(const Name&) 对于类类型成员,会调用拷贝构造函数拷贝,对于内置类型成员就直接拷贝。对于数组,合成的拷贝构造函数会逐个拷贝都另一个数组中(内置类型)。 拷贝构造函数发生的时候: 发生在用 = 定义变量时 将一个对象作为实参传递给一个非引用类型的形参 从 阅读全文
posted @ 2017-10-01 14:29 CoderZSL 阅读(205) 评论(0) 推荐(0)