摘要: 重载运算符 [TOC] 四、重载运算符 ​ : ​ : ​ : 1.一元运算符重载 ​ Ⅰ (负号)的重载(取反啊) 友元函数重载 ​ 成员函数重载 Ⅱ ++符号的重载 前置++符号重载 后置++符号重载 2.二元运算符重载 ​ Ⅰ +(加号)的重载 友元函数重载 ​ 成员函数重载 Ⅱ using 阅读全文
posted @ 2016-11-18 14:22 青_阳 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 模板 [TOC] 三、模板 使用模板的目的就是能够让程序员编写与类型无关的代码。 `typename class` 1.函数模板 2.类模板 特别提醒:模板代码不能分离编译 即声明和定义都必须写在.hpp文件中。 3.标准模板库 | vector | 常用函数 | | | | | empty() | 阅读全文
posted @ 2016-11-18 14:20 青_阳 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 静态 [TOC] 二、静态 ​ “静态”使用场景:用作全局的。 1.静态数据成员 依赖于类,并不依赖于对象。 所开辟的内存并不在对象中。 对象声明多个,但静态数据成员只会有一份。 普通数据成员依赖于对象,对象析构则不存在。 C++ // Tank.cpp class Tank { public: T 阅读全文
posted @ 2016-11-18 14:18 青_阳 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 友元 [TOC] 一、友元 无视private、protected限定符。 破坏了类的封装性。 如无需要,不推荐使用。 1.友元函数 ​ ​ (1)友元全局函数 (2)友元成员函数 C++ // Circle.cpp class Coordinate; // 前向声明,声明有这么一个类,告诉编译器先 阅读全文
posted @ 2016-11-18 14:17 青_阳 阅读(220) 评论(2) 推荐(0) 编辑
摘要: 5 1异常处理 [TOC] 1.异常:程序运行期出现的错误 2.异常处理:对有可能发生异常的地方做出预见性的安排 3.关键字 (1)try...catch...catch... ​ (2)throw ​ 4.基本思想:主逻辑与异常处理分离 5.常见的异常 (1)数组下标越界 (2)除数为零 (3)内 阅读全文
posted @ 2016-11-18 14:12 青_阳 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 4 1运行时类型识别RTTI [TOC] 1.RTTI ​ ​ 使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。 2.操作符typeid ​ ​ ​ 它的表达式有下图两种形式: | NAME 阅读全文
posted @ 2016-11-18 14:11 青_阳 阅读(157) 评论(0) 推荐(1) 编辑
摘要: 3 5接口类 [TOC] 一、接口类 1.接口类的定义 ​ ​ 成员函数都是纯虚函数。 2.接口类更多的是表达一种能力或协议 阅读全文
posted @ 2016-11-18 14:10 青_阳 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 3 1纯虚函数抽象类 [TOC] 一、纯虚函数 1.纯虚函数的定义 ​ 2.纯虚函数的实现原理 ​ ​ ​ 二、抽象类 1.抽象类 ​ 2.抽象类的用法 ​ (1)抽象类无法实例化对象。(无论在堆中还是栈中。) ​ (2)因为纯虚函数无法被调用。 ​ (3)当类的用途很明确时,才在派生类中具体去实现 阅读全文
posted @ 2016-11-18 14:09 青_阳 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 2 7虚函数与虚析构函数实现原理 [TOC] 1.虚函数的实现原理 (1)引入概念: 函数指针 。 ​ (2)多态的实现原理 ​ ​ vftable_ptr,4字节,指向一张虚函数表的首地址。 ​ ​ 表中存放各虚函数入口地址,此地址指向虚函数。 ​ 派生类中如果定义了同名虚函数,派生类中的虚函数表 阅读全文
posted @ 2016-11-18 14:07 青_阳 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 2 4虚析构函数 [TOC] 1.为什么引进虚析构函数? ​ ​ ​ ​ 2.virtual在函数中的使用限制 (1)不能用来修饰普通函数(全局函数) ​ (2)不能用来修饰静态成员函数 ​ (3)不能用来修饰内联函数 ​ (4)不能用来修饰构造函数 ​ `构造函数不能成为虚函数。` 阅读全文
posted @ 2016-11-18 14:05 青_阳 阅读(156) 评论(0) 推荐(0) 编辑