c++
微微啦啦
这个作者很懒,什么都没留下…
展开
-
STL容器
容器部分主要由头文件<vector>,<list>,<deque>,<set>,<map>,<stack>和<queue>组成。容器分类:一、顺序容器vector:向量容器,底层由数组实现,只有push_back()方法相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它原创 2018-08-20 18:15:05 · 239 阅读 · 0 评论 -
迭代器
《一》迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。迭代器的分类:1.输入迭代器(input iterator)功能取出其所指向的值 访问下一个元素 判断是否到达了最后一个元素 可以复制因此其支持的操作符有 *p,++p,p++,p!=q,p == q...原创 2018-08-20 17:36:03 · 197 阅读 · 0 评论 -
内联函数和宏的区别
1、替换的时机内联函数是在编译期间进行替换,就是将该函数在函数的调用点直接展开宏函数是在预处理阶段替换2、替换的成功率内联函数只是对编译器的一个建议,如果编译器觉得该函数不适合成为内联函数时,便会忽略前面的[ inline ]关键字,比如我们将递归函数写成内联函数,编译器会忽略前面的[ inline ]关键字(不会再调用点展开),把它当做一个普通的递归函数处理,宏一旦定义则在预...原创 2018-08-23 14:02:24 · 320 阅读 · 0 评论 -
单例模式
单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。单例模式的优点:一、实例控制:单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所...原创 2018-08-20 15:28:56 · 122 阅读 · 0 评论 -
深拷贝和浅拷贝
对象拷贝(Object Copy)就是将一个对象的属性拷贝到另一个有着相同类类型的对象中去。在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用对象的部分或全部 数据。有两种类型的对象拷贝:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)。浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是...原创 2018-08-20 14:08:42 · 281 阅读 · 0 评论 -
c++的类型转换
c++中引入新的类型转换的原因:这是因为新的类型转换控制符可以很好的控制类型转换的过程,允许控制各种类型不同的转换.还有一点好处是C++的类型转换控制符能告诉程序员或读者我们这个转换的目的是什么,我们只要看一下代码的类型转换控制符,就能明白我们想要达到什么样的目的.ANSI-C++ 标准定义了4种新的类型转换操作符: reinterpret_cast, static_cast, dynamic...原创 2018-08-20 10:42:38 · 116 阅读 · 0 评论 -
c++继承
《一》单继承:派生类的直接基类只有一个<1>继承的方式class Base /*------------->基类/ 父类 */ { public: int ma;};class Derive:public Base /* ------------>派...原创 2018-08-08 15:27:30 · 114 阅读 · 0 评论 -
一个程序在执行main函数之前都干了些什么?
《一 》怎么执行程序(如何把程序加载到内存上首先内存需要的是数据和指令(机器语言)但是程序是高级语言,1:先通过编译链接生成.exe文件(.exe文件在磁盘中存储,且.exe文件中是机器语言)2:.exe文件通过mmap函数映射到虚拟内存上3:再通过分段分页机制把需要的指令和数据加载到内存 4:把main函数的入口地址写入到下一行指令寄存器中《二》编译链接的过程...原创 2018-08-08 09:27:39 · 9779 阅读 · 1 评论 -
c++设计模式-----工厂模式
《一》简单工厂模式简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出来哪一种产品类的实例.简单工厂模式的实质:是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。打个比方假设有一个工厂,他能生产出A、B两种产品。当客户需要产品的时候一定要告诉共产是哪种产品...原创 2018-08-10 16:00:05 · 139 阅读 · 0 评论 -
c++中的临时量和对象的生存周期
《一》临时量的生成:1.内置临时量:相当于一个常量 在存储器中存放2.自定义类型:相当于产生一个变量临时量 在内存中存放3.隐式生成临时量:相当于一个常量(const类型)不能用普通的引用来引用。例如赋值运算符重载函数的形参4:显示生成临时对象:相当于生成了一个变量,可以用普通的引用来引用《二》返回值1、其他类型:<=4字节 由eax寄存器带回 ...原创 2018-08-01 15:17:53 · 424 阅读 · 0 评论 -
c++中的四个函数-----构造,析构,拷贝构造,赋值运算符重载
《一》构造函数(初始化一个对象不是申请空间)可以重载(因为生而不同) 有this指针 对象不可以自己调用 原因:构造函数依赖对象调用所以只有对象生成了才能调用构造函数,但是生成对象需要调用构造函数(这就是一个先有鸡还是先有蛋的问题)(递归生成对象)《二》析构函数(释放所占的资源不是释放空间)1:不可以重载(死相同)2:有this指针3:可以自己调用,但...原创 2018-08-01 14:45:56 · 252 阅读 · 0 评论 -
c++同名函数----重载、隐藏、覆盖
《一》重载重载的规则:函数名称必须相同。 参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)。 函数的返回类型可以相同也可以不相同。 仅仅返回类型不同不足以成为函数的重载。 相同的范围(在同一个类中); virtual 关键字可有可无。为什么需要函数重载?试想如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取不同的名字,如print_in...原创 2018-08-21 12:55:34 · 7244 阅读 · 4 评论