右值 右值是相对与左值来说的。 左值是以变量的形式存在,指向一个指定的内存,可以对它取地址。右值就是不指向任何地方,它是暂时和短命的,不能对它取地址。 右值引用 把临时的、生命周期短的值,绑定到一个变量上,提高它的生命周期,比如 这里的 a+b 会产生一个临时变量,第一种情况,这个临时变量被拷贝构造 ...
分类:
编程语言 时间:
2018-12-29 11:18:51
阅读次数:
213
1、构造函数 (1)每个类都要定义它自己的构造函数和析构函数,是类的成员函数。 特点:名称与类名相同;没有返回值;一定是共有函数,可以直接访问类内所有成员函数;可以带默认形参,可以重载; (2)注意: (1)类中没有定义任何构造函数时,才使用默认构造函数; (2)不能同时出现,无参构造函数和带有全部 ...
分类:
编程语言 时间:
2018-12-27 23:07:24
阅读次数:
199
当我们通过普通的构造函数构造出一个对象之后,用这个对象去初始化另一个新建的对象,如这种: test a(1); test b = a 或者test b(a) 这两种 还有这种 test & gettestObject() 则需要调用拷贝构造函数,如果我们没有显式的声明一个拷贝构造函数,系统会生成一个 ...
分类:
其他好文 时间:
2018-12-26 20:20:16
阅读次数:
141
```c++ // / 在C++ 03标准下 在没有显式定义的情况加,编译器会自动生成以下4个函数 1. 拷贝构造函数 2. 拷贝赋值运算符 3. 析构函数 4. 默认构造函数(只有当没有声明任何构造函数的时候) / class dog {}; / 这个看似空的类,其实等效于下面这个类 / clas ...
分类:
编程语言 时间:
2018-12-23 19:34:49
阅读次数:
251
介绍目录: 1.类成员 1.1 成员函数 1.2 构造函数 1.2.1 对构造函数的理解 1.2.2成员初始化列表 1.2.3必须使用成员初始化列表的几种情况 1.2.4对于拷贝构造函数的参数是一个引用的理解 1.2.5对深拷贝和浅拷贝的理解 1.3析构函数 1.3.1 单继承 1.3.2 多继承 ...
分类:
编程语言 时间:
2018-12-22 01:34:48
阅读次数:
226
一元操作符 二元操作符 方括号操作符重载 赋值操作符重载 逻辑操作符重载 ...
分类:
其他好文 时间:
2018-12-20 14:37:46
阅读次数:
234
一、为什么使用智能指针?智能指针的原理? C/C++中的堆内存分配和释放的方式主要是: malloc/free 以及 new/delete 等。 使用new 和delete 管理内存存在三个常见问题: 1.忘记delete(释放) 内存,或者异常导致程序过早退出,没有执行 delete。忘记释放动态 ...
分类:
编程语言 时间:
2018-12-18 18:00:23
阅读次数:
300
-无参构造函数 没有参数的构造函数: 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空; -拷贝构造函数 参数为const class_name & 的构造函数 (当前类对象的引用): 当类中没有定义拷贝构造函数,编译器默认提供一个拷贝构造函数,简单的进行成员变量的复制。 ...
分类:
其他好文 时间:
2018-12-12 12:19:38
阅读次数:
153
0.目录 1. "函数对象" 2. "重载赋值操作符" 3. "string类" 4. "小结" 1.函数对象 编写一个函数: 函数可以获取斐波那契数列每项的值 每调用一次返回一个值 函数可根据需要重复使用 实现功能: cpp include include using namespace std; ...
分类:
编程语言 时间:
2018-12-07 23:25:03
阅读次数:
258
0.目录 1. "操作符重载" 2. "完善的复数类" 3. "小结" 1.操作符重载 下面的复数解决方案是否可行? 示例1——原有的解决方案: 运行结果为: 操作符重载: C++中的重载能够扩展操作符的功能 操作符的重载以函数的方式进行 本质——用特殊形式的函数扩展操作符的功能 通过operato ...
分类:
编程语言 时间:
2018-12-07 21:17:52
阅读次数:
214