
C++
blog_zhangxu
美好的年华,别让自己失望
展开
-
C++命名空间
命名空间提到C++,我们就不得不说命名空间了,那么命名空间到底是什么呢?也许你经常会看到别人写的C++代码中总是有这样一句:using namespace std;其中namespace 就是我们C++中的命名空间。首先我们来说一下为什么C++为什么要引入命名空间在我们的C/C++语言中,变量、函数以及类都是大量存在的,这些变量、函数以及类都是存在于全局域中的,一不小心,我们就有可...原创 2019-04-27 18:50:06 · 2876 阅读 · 1 评论 -
C++多态
C++多态多态概念字面意思,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。举个例子:假如你要去看电影,有的影院也许有这样的规定,如果你是成年人,那么就是全票,如果你是学生,那么就是半价票,如果你是一个小孩子,那么你就不需要票,免费。这就是很典型的一个例子,针对不同的对象,你去做这件事发生的结果是不一样的。多态的发生条件必须通过基类的指针或者引用调用虚函...原创 2019-07-24 16:42:58 · 318 阅读 · 0 评论 -
C++继承
C++继承继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,而继承是类设计层次的复用。class Person{public: void Print() { co...原创 2019-07-24 14:26:25 · 238 阅读 · 0 评论 -
C++类型转换
C++类型转换C语言类型转换在c语言中,存在两种类型转换,一种是隐式类型转换,另一种是显示类型转换。如下所示。int a = 4;double b = a; //隐式类型转换int *ptr = &a;int address = (int) ptr;缺陷:C语言中的隐式类型转换看起来是很方便,但在有些时候也会给我们带来一些隐患问题。C语言中的强制类型转换太...原创 2019-07-24 13:07:37 · 514 阅读 · 0 评论 -
C++智能指针
导入我在学习C语言的时候,最让人头疼的便是指针,指针本身并不难,但是指针和内存挂钩就显得不那么容易理解。我们经常要利用 malloc 申请内存空间,但是一不留神就忘记释放内存空间,那么着就会造成内存泄漏,不容小觑。那么C++中我们该如何解决这个问题呢?RAII基本描述RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源...原创 2019-07-19 16:19:15 · 201 阅读 · 0 评论 -
C++模板简介——泛型编程
泛型编程概念:泛型编程是编写一种与类型无关的代码,增强代码复用性。如何实现一个交换函数呢?假如要交换两个整数,也许我们会做如下处理void swap(int& a,int& b){ int tmp = a; a = b; b = tmp;}这样实现没有问题,但是假如我要交换char型,float 型等等,我们只能通过函数重载完成。重载的函数仅仅只是类型不同,代码的...原创 2019-05-28 21:34:38 · 246 阅读 · 2 评论 -
C++之单例模式~~
设计模式什么是设计模式设计模式就是一套反复被使用,多数人知晓,经过分类的,对于一些特定的场合总结的经验。比如在古代,经常会发生战争,打仗也要有技巧,于是就出现了像孙子兵法,武穆遗书这种东西。。人们凭借这着这些经验,去解决相关的问题。在早期,一共有23种设计模式,例如简单工厂模式,适配器模式,观察者模式,单例模式等,而今天我与大家分享的就是单例模式。单例模式概念:单例模式指的就是一个类只能实...原创 2019-05-28 18:57:17 · 152 阅读 · 0 评论 -
C/C++内存管理
内存管理在C和C++中,我们最关心的就是内存,一旦与内存沾上边,所以也就导致相对其它语言而言,它学起来就没有那么容易。内存布局栈存储非静态局部变量,函数参数返回值等,栈是向下增长的堆用于程序运行时动态内存分配,堆是可以上增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。数据段可用来存储全局数据和静态数据。代码...原创 2019-05-28 16:19:53 · 130 阅读 · 0 评论 -
C++类中的黑暗料理~~
引入之前,我们谈论了关于类的基本概念,了解了类和对象的基本使用以及关于类的六个默认构造函数等。那么今天就来说一说在C++类中你可能还不太了解的黑暗料理~~ 学会了之后,你会发现,原来还可以这么玩。。再谈构造函数之初始化列表class Date{ public: Date(int year,int month,int day){ _year = year; _month =...原创 2019-05-22 14:40:19 · 203 阅读 · 0 评论 -
隐含的this指针以及类的六个默认成员函数
隐含的this指针问题导入当我初学C++时,我遇到了这样一个问题,当时我写了一个简单的代码,如下:class Date{ public: void Print(){ cout<<_year<<"-"<<_month<<"-"<<day<<endl; } private: int _year; i...原创 2019-05-21 16:00:45 · 1335 阅读 · 0 评论 -
C++中的糖果——缺省参数、内联函数、auto及nullptr关键字
在C++中,相对于C语言,我们引入了许多新的概念,新的机制,它们的到来让我们的编程方便了不少,它并没有多么难理解,但是比较零碎,在我看来它就是一些加分项,故此,我们通常也将其称为C++中的糖果。下面就让我为大家来介绍几个比较有意思的概念。缺省参数提到缺省参数,那么参数必定是和函数相关的内容,那么什么到底是缺省参数呢?我就用一个当下比较火的网络红词来大体解释一下什么是缺省参数,那就是“备胎”。...原创 2019-05-07 13:57:58 · 531 阅读 · 0 评论 -
C++类对象模型及内存对齐与字节序
回顾上篇我们简单的阐述了一下面向对象与面向过程编程的基本思想以及它们之间的区别,对我们类与对象做了一个简单的了解,那么这次我们就来说一下关于类的其它相关的知识。类对象模型问题引入我们知道,一个类中既可以有成员变量,还可以有成员函数,那么我们的对象中到底包含了什么?我们应该如何计算一个类的大小?类对象模型的存储方式我们知道对象是一个类的实例化,类是一个抽象的概念,而对象占有实际的物理内存...原创 2019-05-09 15:33:02 · 527 阅读 · 0 评论 -
my favorite --------- 引用
引用引用是我们C++中新引入的一种机制,那么到底什么是引用呢?引用概念:引用不是新定义一个变量,而是给已存变量娶了一个别名,编译器不会为引用变量开辟内存空间,它和我们已有变量共用同一块内存空间。简单来说引用就是一个别名。例如你在外叫张三,在家叫臭牛一样。。。。。定义引用变量的格式类型& 引用变量名(对象名) = 引用实体;int a = 10;int& ...原创 2019-04-30 18:53:47 · 477 阅读 · 0 评论 -
C语言为什么不支持函数重载
函数重载在我们中国的文化中,一个词可能是有多种含义,在这种情况下就可以通过上下文来判断这个词到底是什么意思,在这里我们就可以理解为这个词被重载了。例:又是晴朗的而又美好的一天,可是小明的妈妈却让小明去打扫卫生,不打扫完不能出去玩,但是恰好小明这时候特别想出去和朋友一起打篮球,当她妈妈给他让他去打扫卫生时,小明顺口来了一句“ 我去 ”。那么请问小明到底是去还是不去。其实这只是个玩笑而已,不过它却...原创 2019-04-30 17:55:25 · 5586 阅读 · 1 评论 -
C++类与对象初识
引入:在我们编程语言中,想必大家都应该听说过面向过程编程与面向对象编程,那么到底什么是面向过程编程什么是面向对象编程呢?对于这个问题我想大家都应该听我们的老师讲过一个生动而又形象的例子,下面我以这个例子为大家具体的讲解释一下这两者的区别。如何将大象装进冰箱?面向过程(POP)对于面向过程而言,就是分步骤去解决问题,如下打开冰箱门把大象放进冰箱关闭冰箱门你没看错,就是这么简单。面向...原创 2019-05-08 18:47:52 · 247 阅读 · 0 评论 -
C++ 异常处理
C语言处理错误的方式终止程序。assert ,这种方式比较粗暴,如发生内存错误,除0错误时就会终止程序返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误C 标准库中setjmp和longjmp组合。这个不是很常用,这个我也不是很了解。大家知道有这么个东西就行了。C++异常概念异常是一种处理错误的方式,当一个函数发现自己...原创 2019-07-20 23:10:21 · 282 阅读 · 0 评论