![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
顽强的土豆地雷
性格内向
展开
-
c++入门
1.命名空间c语言中每个程序都要包含头文件,C++也不例外也需要包含头文件include<iostream>using namespace std;第一行比较好理解就是与C语言一样,包含一个标准的头文件来调用某些函数。第二行就是新加的,这句话的意思是使用命名空间std。首先来说什么是命名空间,所谓命名空间实际上就是一个由程序设计者自主命名的一个内存区域。其次命名空间的主要作用就是为了解决同名冲突问原创 2017-06-23 22:20:48 · 505 阅读 · 0 评论 -
STL容器Set的使用
首先了解一下set,我们所知道的set是STL中的一个容器,但是set实质上也是有不同的版本,我们最根本的划分就是根据其底层实现分别是红黑树和hash表分为两种,首先这两种结构最本质的区别就是有序和无序,红黑树的存储是有序的而hash表是无序存储,但它并不影响set的最主要的用法就是查找,而从查找角度来说hash表是更优于红黑树,从时间复杂度进行分析,红黑树的时间复杂度为O(logN),而hash表原创 2017-11-19 14:33:30 · 1647 阅读 · 0 评论 -
智能指针
1.智能指针的发展历史 智能指针的产生:在c语言中存在自动回收机制,而在C++中并没有这个机制程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。所以有人根据RAII的思想(RAII:维基百科的解释RAII要求,资源的有效期与持有资源的对象的生命周期严格绑定,即由对象原创 2017-09-27 14:23:35 · 181 阅读 · 0 评论 -
多态的对象模型
首先,我们要知道构成多态的必要条件有两个: 1.在继承过程中进行虚函数的重写。 2.父类的引用或指针调用虚函数。 下面是一个比较简单的多态class father{public: virtual void Display() { cout << "father::Display()" << endl; };};class son : public原创 2017-09-09 16:58:04 · 230 阅读 · 0 评论 -
模板的分离编译
关于这个问题首先应该从出现问题的原因说起,如图: 一般来说我们通常会建立三个文件,一头文件用来声明所有接口,二就是函数的实现文件单独放一个文件有助于封装,三就是而是文件用来测试函数。正常函数可以成功,但是当该成模板函数时就会出现问题。 如图: 我们可以发现报错为链接错误,我们可以知道一个程序执行过程分为预处理,编译,汇编,链接四部分。 1.预处理主要就是进行头文件的展开和宏替换。原创 2017-09-15 22:06:45 · 225 阅读 · 0 评论 -
C++动态内存管理
1.malloc/free和new/delete之间关系和差异。相同点:都是用来管理动态内存的,必须成对出现,因为一个用于申请动态内存,一个用于释放内存。 不同点:malloc/free是C++/C语言的标准库函数,new/delete是c++的运算符,对于非内部数据类型的对象而言,只有malloc、free是无法满足动态对象的要求的。因为对象在创建的时候会自动调用构造函数,对象消亡时会自动调原创 2017-07-17 22:11:38 · 221 阅读 · 0 评论 -
菱形继承
分析菱形继承的问题 C++的特性中最为重要的就是继承和多态,继承的作用比较多,比较重要的就是继承是对类的复用,它不仅在减少了程序开发者的速度,使得一些代码不用重复去写,更重要的就是继承就是一个建模的过程,这样会使程序开发者的思路更加清晰,同样会使程序更加有框架从而变得比较紧密。 继承就是一个新的类在已有类的基础上进行添加一些特有数据或函数从而构成一个包含已有类,但又不同的新类。已有的类原创 2017-07-21 20:38:36 · 248 阅读 · 0 评论 -
拷贝函数的优化面试题
C++对拷贝构造函和赋值预算符之间的优化通过一道简单的题目来理解这个知识: Test1中调用了次AA的拷贝构造函数,次AA的赋值运算符函数的重载。 Test2中调用了次AA的拷贝构造函数,次AA的赋值运算符函数的重载。 Test3中调用了次AA的拷贝构造函数,次AA的赋值运算符函数的重载。 class AA {}; AA::AA f (AA a) { return a ; }原创 2017-07-23 10:15:48 · 306 阅读 · 0 评论 -
类与对象
1.类与对象 C++中将对象的类型称为类,类代表了某一批对象的共性和特性,生活中每一个实体都是对象,而类就是对对象的抽象。其实这与生活十分相似,比如生活中我们为了方便简介对所有事物进行了分类,这样方便我们进行记忆和管理。C++中也是一样,我们通过将一些对象进行抽象,就是将其共性找出写作一个类,而每个对象之所以不同就是因为它们在拥有这些共性时,也具备自己的特性。所以说对象是类的特。2.访问限定符原创 2017-07-16 16:52:08 · 268 阅读 · 0 评论 -
C++中STL容器vector的使用
vetctor的定义原创 2018-05-25 19:39:41 · 10318 阅读 · 0 评论