合集-C++
摘要:一、C++介绍 本贾尼.斯特劳斯特卢普,于1979年在贝尔实验室负责分析UNIX系统内核流量的分布情况时,特别希望有一种更加模块化的工具, 于1979年.10开始着手研发一款新的编程语言,在c语言的基础上增加了面向对象的机制,也就是C++,1983年完成了C++的第一个版本 C++与C的关联和重要区
阅读全文
摘要:一、函数重载 1、什么是函数重载 在同一作用域下,函数名相同,参数列表不同的函数构成重载关系 函数重载与返回值的类型、参数名无关 与作用域是否相同,以及参数列表的数量、参数类型、常属性不同等有关 2、C++是如何实现函数重载的? 通过g++ -S 的方式生成汇编代码可以知道,编译器会把函数的参数类型
阅读全文
摘要:一、对象的创建和销毁过程分析 1、对象的创建过程 a、给对象划分内存空间 b、执行初始化列表 1、根据继承表(类名的后面)的顺序调用父类的无参构造或者有参构造 通过:父类名(val) 调用父类的有参构造 2、根据成员变量的定义顺序调用类类型成员的无参构造或者 有参构造 通过:类类型成员名(val)
阅读全文
摘要:一、静态成员 什么是静态成员:被static修饰的成员变量和成员函数叫做静态成员 普通成员的特点: 成员变量:每个类对象中都有一份属于自己的成员变量,相互之间没有关联、独立的 成员函数:隐藏着一个this指针,接收调用者地址用于区分调用者 静态成员的特点: 静态成员变量: 1、存储在data或者bs
阅读全文
摘要:一、什么是继承 1、当遇到问题时,先查看现有的类是否能解决一部分问题,如果有则继承该类,并在此基础上扩展以此解决问题, 从而缩短解决问题的时间(代码复用) 2、当遇到一个大而复杂的问题时,可以把大问题拆分成若干个不同的小问题,然后为每个小问题设计一个类来解决, 最后通过继承的方式把这些类汇总到一个类
阅读全文
摘要:一、虚函数、虚函数表、虚表指针、覆盖 1、虚函数 只要是在成员函数前面加 virtual 后,该函数就成为虚函数,此时该类就会 像虚继承一样多了一个虚表指针(虚函数表指针、虚指针) 2、虚函数表 虚表指针指向的是属于该类的一张表格的首地址,该表格中记录了该类中所有虚函数的首地址 通过 ((void(
阅读全文
摘要:一、类型信息运算符 typeid 在C++中typeid可以获取数据的类型,但是需要加头文件 typeinfo find /usr/include -name typeinfo 1、typeid是运算符,执行运算符函数,执行的返回值类型是type_info 类类型对象 2、type_info中有个n
阅读全文
摘要:一、智能指针 常规指针的缺点: 当一个常规指针离开了作用域时,只有该指针变量本身占用的内存空间(4/8字节)会被释放, 而它指向的内存空间不会自动释放,当free\delete\delete[]语句忘记执行或者无法执行, 形成内存泄露 (如何定位哦内存泄露、如何预防内存泄露) 智能指针的优点: 智能
阅读全文
摘要:STL标准模版库 STL是Standard Template Library的缩写,中文名标准模版库,由惠普实验室提供 (使用C++模板语言封装的常用的数据结构与算法) STL中有六大组件: 算法:以函数模板形式实现的常用算法,例如:swap\max\min\find\sort 容器:以类模板的形式
阅读全文
摘要:一、deque 双端队列容器 #include 是下标顺序容器,它允许在首尾两端快速的插入、删除数据 deque的元素不是全部相邻存储的:采用单独分配的固定大小数组的序列存储数据,以及额外的登记表(中控数组), 该表中记录了所有序列的地址,这表示通过下标访问元素时必须经过两次指针解引用,vector
阅读全文
摘要:一、什么是UML 统一建模语言 二、UML能够做什么 1、帮助建立软件开发过程中的各种模型 2、UML的主要目的是为了交流 开发者与用户之间的交流(用例图) 开发者与开发者之间的交流(类图) 3、适合用于大型项目和多人团队的开发 三、对UML的学习建议 没有完美的UML图、够用就行,图是死的,人是活
阅读全文
摘要:## STL 算法组件 - STL算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。注意范围定义为 `[first, last)` ,其中 `last` 指代要查询或修改的最后元素的*后一个*元素。 - #include ### 不修改序列的操作 - 调用函数之后,不会影
阅读全文