C++
mf1crystal
这个作者很懒,什么都没留下…
展开
-
多态
多态: 多态成立的三个条件 1:要有继承; 2:要有虚函数重写; 3:用父类指针(父类引用)指向子类对象。静态联翩编和 动态联编 1、联编是指一个程序模块、代码之间互相关联的过程。 2、静态联编(static binding),是程序的匹配、连接在编译阶段实现,也称为早期匹配。 重载函数使用静态联编。 3、动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编(迟绑定原创 2018-01-20 14:31:02 · 150 阅读 · 0 评论 -
设计模式(2)
观察者模式: Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同include include include using namespace std;class Assist; // 抽象观察者原创 2018-01-27 22:11:22 · 167 阅读 · 0 评论 -
设计模式(1)
单例模式:保证为一个类只生成唯一的实例对象。也就是说在整个程序空间中该类只存在一个实例对象。> #include using namespace std;class UserManager{private: UserManager() { }public: static UserManager* GetInstance() {原创 2018-01-27 21:51:05 · 188 阅读 · 1 评论 -
STL标准模块:算法
算法的概述 算法部分主要由头文件,和组成。 是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、反转、排序、合并等等。 体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。 中则定义了一些模板类,用以声明函数对象。 STL提供了大量实现算法的模版函数,只要我们熟悉了STL之后,许多代码可以被大大的化简,原创 2018-01-26 21:02:52 · 360 阅读 · 0 评论 -
STL标准模块:stack,queue,list,priority_queue
stack: 简介:stack是堆栈容器,是一种“先进后出”的容器。 stack是简单地装饰deque容器而成为另外的一种容器。 # include stack对象的默认构造: stack采用模板类实现, stack对象的默认构造形式: stack stkT; stack stkInt; //一个存放int的stack容器。 stack stkFloa原创 2018-01-26 20:49:33 · 223 阅读 · 0 评论 -
类和对象
面向对象编程介绍 C++面向对象程序设计 面向将系统看成通过交互作用来完成特定功能的对象的集合,没个对象用自己的方法来管理数据,也就是说对象内部的代码能够操作对象内部的数据 面向对象的优点: 由活字印刷谈面向对象; 面向对象的好处 面向过程的缺点: 不容易维护,灵活性差,不容易扩展,更谈不上复用,由于客户的需求多变,导致程序员加班加点,甚至整个项目经常返工。 面向对象的优原创 2018-01-09 19:28:54 · 129 阅读 · 0 评论 -
STL标准模块库:vetcor和deque
vectorvector的容器简介: vector是将元素置于一个动态数组中加以管理的容器。 vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法)。 vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时vector对象的默认构造: vector采用模板类实现,vector对象的默认构造形式 vector vecT; v原创 2018-01-25 21:10:55 · 186 阅读 · 0 评论 -
STL标准模块库:容器string模块
STL概述 基本概念: STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采 用了模板类原创 2018-01-25 20:53:19 · 223 阅读 · 0 评论 -
C到C++的拓展
C++的引用:变量名的回顾:变量名实质上是一段连续存储空间的别名,是一个标号(门牌号) 程序中通过变量来申请并命名内存空间 通过变量的名字可以使用存储空间C++中的引用:#include int main(){ // 定义一个int型变量a,在内存中占4个字节, // 变量名 a 就代表了这一块内存,或者说 a 是这块内存的别名 int原创 2018-01-08 19:16:02 · 156 阅读 · 0 评论 -
继承与派生
类之间的关系: has-A: 包含关系,用以描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是另一种已经定义的类. use-A 一个类部分地使用另一个类。通过类之间成员函数的相互联系,定义友员或对象参数传递实现。 is-A 机制称为“继承”。关系具有传递性,不具有对称性。继承的关系: 继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界原创 2018-01-16 19:18:02 · 356 阅读 · 0 评论 -
异常与文件操作
类型转换 static_cast 普通数据类型之间的转换 reinterpret_cast 指针之间的转换 dynamic_cast 类层次之间的转换 const_cast 将一个 const常量 转化为非 const 变量异常处理机制 什么是异常? 1)异常是一种程序控制机制,与函数机制独立和互补 函数是一种以栈结原创 2018-01-24 15:47:34 · 216 阅读 · 0 评论 -
C 语言到 C++ 过度
C语言和C++ 的区别: C语言存在很多的灰色地带,没有深思熟虑的设计过程,残留量过多低级语言的特征例如直接利用指针进行内存操作,C语言的目标就是高效。 C语言是面向过程编程设计:数据结构和算法, 问题的存在 软件可重用性差,软件可维护性差,构建的软件无法满足用户需求。C++面向对象程序设计:由现实世界建立软件模型; 特点:直接分析用户需求中设计的各个实体,在代码中描述现实世界中的实体原创 2018-01-05 19:55:09 · 293 阅读 · 0 评论 -
字符串的重载程序
MyString.h#ifndef __MYSTRING_H__#define __MYSTRING_H__#include using namespace std;class MyString{ // 重载 friend std::ostream& operatorout, MyString &str); // 重载 >> 操作符 frie原创 2018-01-14 19:47:11 · 331 阅读 · 0 评论 -
运算符重载
概念: 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。 运算符重载的限制: 不能重载的是. :: .* ?: sizeof其余基本上都可以 重载运算符可以对运算符做出新的解释,但原有的基本语义不变: 不改变运算符的优先级, 不改变运算符的结合性; 不改变运算符所需要的原创 2018-01-14 19:39:29 · 137 阅读 · 0 评论 -
函数模版和类模版
概述: C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。1)C++提供两种模板机制:函原创 2018-01-20 14:47:28 · 124 阅读 · 0 评论