特殊的构造函数: 示例如下: 17-24行就是编译器替我们提供的默认构造函数和拷贝构造函数。 运行结果如下: 可以看到t1和t2中i和j的值是一样的。 当我们的类中没有编写任何的构造函数时,编译器才会给我们提供默认的构造函数,拷贝构造函数是构造函数的一种。 拷贝构造函数: 兼容C语言的方式类似于 T ...
分类:
其他好文 时间:
2018-09-01 00:44:54
阅读次数:
171
1.&在此不是求地址运算,而是起标识作用 2.传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。 3.使用引用传递函数的参数,在内存中并没有产生实参的副本,它 ...
分类:
编程语言 时间:
2018-08-26 01:20:11
阅读次数:
131
c/c++ 编译器提供的默认6个函数 1,构造函数 2,拷贝构造函数 3,析构函数 4,=重载函数 5,&重载函数 6,const&重载函数 c++ include using namespace std; class Test{ public: Test(int d = 0):data(d){ c ...
分类:
编程语言 时间:
2018-08-19 11:05:17
阅读次数:
138
它们两个的数值变化的区别,我这里就不多说了 这里主要说明两者在效率上的区别 (1)首先如果是自带的数据类型,比如int型,++i和i++,编译器的实现方式是相同的,两者并没有效率上的区别,虽然也有副本的开销,但是一般编译器会优化。 (2)如果是自定义的数据类型,比如自己定义的类。这个时候两者就有了区 ...
分类:
其他好文 时间:
2018-08-19 01:00:25
阅读次数:
159
一、拷贝构造函数 1、是一种特殊的构造函数,就是用一个已有的对象去构造其同类的副本对象,即对象克隆 class 类名 { 类名(类名& that) { 对成员挨个赋值 } } 2、编译器会默认生成一个拷贝构造函数 编译生成的拷贝构造函数默认会逐字节复制类中的每一个成员 如果在类A中有类B成员,会在类... ...
分类:
编程语言 时间:
2018-08-16 21:04:42
阅读次数:
174
一、继承的作用 若A类继承了B类,可以使A类获得B类中的部分成员变量和成员函数,这能使程序员在已有类的基础上重新定义新的类。继承是类的重要特性,当A类继承了B类,我们称A类为派生类或子类,B类为基类或父类。 派生类能够从基类中得到的成员由基类中成员的访问权限有关。关于成员的访问权限,以下将会继续讨论 ...
分类:
编程语言 时间:
2018-08-15 20:33:40
阅读次数:
184
C++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector). [TOC] 前言 最近再写一个muduo的异步日志接触了很多智能指针,但是又不打算用boost库,只好模一个来用用了. 智能指针本身是一个对象,它在栈上创建,构造的时候分配堆上资源,析构的时候释 ...
分类:
编程语言 时间:
2018-08-09 22:00:49
阅读次数:
224
一.C++四个构造函数: 1. 无参构造: 2.有参构造:在构造函数的时候可以使用默认参数 3.拷贝构造: class 类名 { 类名(类名& that) { //对类成员挨个赋值 . .. } } Student stu2 = stu1;//用stu1 来拷贝stu2 4.赋值构造: void o ...
分类:
编程语言 时间:
2018-08-08 21:21:23
阅读次数:
159
不要轻视拷贝构造函数与赋值函数 由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数 有些轻视。请先记住以下的警告,在阅读正文时就会多心: 本章开头讲过,如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝” 的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函 ...
分类:
其他好文 时间:
2018-08-02 13:56:41
阅读次数:
125