概念 如果构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值,则它是拷贝构造函数 第一个参数必须是自身类型的引用:某个函数具有非引用参数,调用过程中要进行拷贝初始化,此时要调用拷贝构造函数来拷贝实参,如果拷贝构造函数的第一个参数不是引用,我们又需要拷贝实参,这样将无限循环下去 合成拷贝构 ...
分类:
其他好文 时间:
2018-09-20 22:56:16
阅读次数:
222
拷贝构造函数 拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于: 通过使用另一个同类型的对象来初始化新创建的对象。 复制对象把它作为参数传递给函数。 复制对象,并从函数返回这个对象。 通过使用另一个同类型的对象来初始化新创建的对 ...
分类:
编程语言 时间:
2018-09-19 19:51:50
阅读次数:
229
描述 指在整个系统生命期中,一个类最多只能有一个实例(instance)存在,使得该实例的唯一性(实例是指一个对象指针) , 比如:统计在线人数 在单例类里,又分为了懒汉式和饿汉式,它们的区别在于创建实例的时间不同: 懒汉式 : 指代码运行后,实例并不存在,只有当需要时,才去创建实例(适用于单线程) ...
分类:
编程语言 时间:
2018-09-19 14:51:51
阅读次数:
170
智能指针 在智能指针中shared_ptr用来计算指向对象的指针的个数,但是如果先执行shared_ptr1=shared_ptr2,再执行shared_ptr2=shared_ptr1,这样shared_ptr1.count()和shared_ptr2.count()都为1,这就造成了循环引用,循 ...
分类:
其他好文 时间:
2018-09-18 22:55:57
阅读次数:
216
1.浅拷贝构造函数 浅拷贝构造函数:1.浅拷贝构造函数中必须对每个成员变量进行拷贝; 2.继承的类,必须对父类进行拷贝; 3.浅拷贝构造函数可省略,系统会有默认拷贝构造函数,就是对类的成员变量进行一一拷贝; 2.深拷贝构造函数-必须实现构造函数 上述代码在析构时,出现错误: 主要原因是因为使用了系统 ...
分类:
其他好文 时间:
2018-09-16 19:39:50
阅读次数:
180
多个智能指针指向同一片堆空间的需求是巨大的。 计数变量也是在堆空间里面定义的,它的生命周期和对象的生命周期相同。 添加SharedPointer.h文件: 测试程序如下: 运行结果如下: 第二个测试程序: 结果如下: 一个堆空间被三个指针指向,最终只释放一次。 编译警告: 提示我们要在SharedP ...
分类:
其他好文 时间:
2018-09-16 00:31:46
阅读次数:
230
条款05:了解C++默默编写并调用哪些函数 直入正题:4个函数。 1. default构造函数。 2. copy构造函数。 3. copy assignment操作符。(operator=) 4. 析构函数。 特点: 1. 它们都是public且inline的。 2. 它们只有在被需要(被调用)时才 ...
分类:
其他好文 时间:
2018-09-11 16:16:50
阅读次数:
102
类默认函数:构造函数,拷贝构造函数,赋值函数和析构函数 构造函数、析构函数和赋值函数是类最重要的函数,被称为The Big Three。与其他成员函数相比,The big three特殊之处在于,如果代码中没有提供这些函数的实现,C++编译器自动合成缺省的函数实现。有指针成员变量的类一定要提供The ...
分类:
其他好文 时间:
2018-09-09 15:18:55
阅读次数:
171
1. 本文目的:理清在各种继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容。 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的特殊性,所以在总结它的性质时将它单独列出来了。 3. 单继承、多继承、虚继承,既然都属于继承,那么虽然有一定的区别,但还 ...
分类:
其他好文 时间:
2018-09-08 21:06:46
阅读次数:
125
搞清楚指针和引用的本质区别, 需要站在语言设计者的角度看待问题; 一切设计都是为了让问题变得更简单. ...
分类:
其他好文 时间:
2018-09-06 02:59:53
阅读次数:
189