类和对象作为面向对象中重要部分,本文详细的介绍其中的内存管理、继承、虚函数与多态、拷贝构造函数等基本原理,使大家对其原理有一个系统的认识...
分类:
编程语言 时间:
2015-06-04 21:07:11
阅读次数:
424
当定义一个类时,我们显式地或隐式地指定在此类型的对象拷贝、移动、赋值和销毁时做什么。一个类通过定义五种特殊的成员函数来控制这些操作,包括:拷贝构造函数(copy constructor)、拷贝赋值运算符(copy-assignment operator)、移动构造函数(move constructor)、移动赋值运算符(move-assignment operator)和析构函数(destructo...
分类:
其他好文 时间:
2015-06-01 22:44:45
阅读次数:
97
拷贝构造函数是一种特殊的构造函数,其定义为第一个参数为为本类型的一个引用或者是常引用,且无其它参数或者其它参数为默认值,例如下面的函数:1 X::X(const X&); 2 X::X(X&, int a=1); 3 X::X(X&, int a=...
分类:
编程语言 时间:
2015-06-01 18:12:04
阅读次数:
128
每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。class String { public: String(const char *str = NULL); // 普通构造函数 String...
分类:
其他好文 时间:
2015-05-29 20:06:16
阅读次数:
112
简单的赋值操作符由等于号(=)表示,其作用就是把右侧的值赋给左侧的变量。var num=10;num=num+10;其中的第二行代码可以用一个复合赋值来代替:var num=10;num+=10;每个主要算术操作符(以及个别的其他操作符)都有对应的复合赋值操作符。这些操作符如下所示: ?乘/赋值(....
分类:
其他好文 时间:
2015-05-28 13:55:22
阅读次数:
156
项和列表操作符(左向)ddd箭头操作符dd自增自减操作符dd指数运算dd表意一元操作符dd绑定操作符dd乘号操作符dd附加操作符dd移位操作符dd命名一元操作符和文件测试操作符dd关系操作符dd相等操作符dd位操作符ddC 风格的逻辑(短路)操作符dd范围操作符dd条件操作符dd赋值操作符dd逗号操...
分类:
其他好文 时间:
2015-05-27 19:05:19
阅读次数:
163
当我们定义一个类时,如何没有声明任何函数,那么C++编译器会默认提供4个函数:默认构造函数、复制构造函数、赋值操作符函数、析构函数,并且这些函数默认都是public且inline的。因此,当你定义如下类: 1 class Empty 2 { 3 4 }; 5 6 // 等价于定义如下类:...
分类:
编程语言 时间:
2015-05-25 08:33:11
阅读次数:
145
背景知识
编译器默认生成函数的规则如下:
1.定义一个类时,如果自己没有声明,那么编译器会自动帮助生成一个拷贝构造函数(copy construction),赋值操作符(copy assignment),析构函数(deconstruction)。
2.如果没有声明任何构造函数(包括拷贝构造函数),编译器会帮助声明一个默认构造函数。
构造函数(包括编译器生成的默认构造函数)的执行包括两个阶段...
分类:
其他好文 时间:
2015-05-24 15:45:47
阅读次数:
133