C++
文章平均质量分 83
mxrrr_sunshine
这个作者很懒,什么都没留下…
展开
-
C++:初识类和对象
类和对象面向对象面向对象程序设计:面向对象程序设计是一种程序设计范性,同时也是一种程序开发的方法。对象:指的是类的实例,将对象作为程序的基本单元,将程序和数据封装在其中,以提高软件的重要性,灵活性和扩展性。c++不是纯面向对象语言,而是基于面向对象的语言,因为包含c的部分,c是面向过程。面向对象的三大特性:继承多态封装定义一个类:class ...原创 2018-06-29 11:04:28 · 257 阅读 · 0 评论 -
c++:多态
多态从定义来讲,多态按字面意思就是“多种形态”在面向对象语言中,接口的多种不同的实现方式即为多态。 静态多态&多态多态静态联编&动态联编联编:程序调用函数,编译器决定使用那个可执行代码块静态联编实际上就是函数重载和运算符重载,是在编译过程中进行联编的动态联编就是在程序运行过程中才动态的确定操作对象。使用虚函数,在内存与执行速度是需要付出代...原创 2018-08-09 15:54:43 · 177 阅读 · 0 评论 -
C++:模板实现vector和list
实现vectortemplate <class T>class Vector{protected: void Expand(size_t newcapacity) { if (newcapacity > Capacity()) { T* tmp = new T[newcapacity]; ...原创 2018-07-23 11:12:46 · 763 阅读 · 0 评论 -
C++:模板全特化、偏特化、类型萃取
首先,特化是什么? 之前实现vector时,我们发现传参传string时,拷贝构造与扩容不应该用简单的浅拷贝,而是应该调用赋值实现。但是对于int,char这种内置类型又可以直接使用值拷贝,显然我们不能在同一份代码里对于不同类型实现两个方法。 也就说明,当一个模板类不能适用于所有类型时,我们可以单拉出来一个特化出来的类,当我们需要这个类的时候编译器会去找这个被特化的类。全特化比如上面那...原创 2018-07-24 16:32:15 · 2559 阅读 · 0 评论 -
C++:模板参数及利用容器适配器实现Stack和Queue
当我们再写栈和队列时,要借助数组或链表实现,c++就提供了这样一种方式:容器适配器。 用vector或list为容器,适配出一个stack或queue。具体是如何适配的? 只要我vector或list提供的接口可以适合你stack或queue,就可以通过适配器适配出一个stack,queue。 template <class T,class Container>cla...原创 2018-07-24 10:23:59 · 455 阅读 · 0 评论 -
C++:继承总结
继承的相关概念继承是面向对象复用的重要手段。继承是类型之间的关系建模,通过继承类的关系,可以达到复用的目的。比如下面这个例子:老师,学生,保安都可以由人这个类继承下来。 实现一个简单的类继承是一种复用手段,在继承关系里父类的成员都会变成子类的一部分三种继承方式public:公有继承private:私有继承protected:保护继承三种继承关系下父类成员...原创 2018-07-17 14:35:42 · 236 阅读 · 0 评论 -
C++:日期类的实现
日期类的实现实现日期类,就是实现其中的几个默认的成员函数以及一些运算符的重载的实现。构造函数使用初始化成员列表初始化年月日,并且对日期的非法性做以判断。Date::Date(int year,int month,int day) :_year(year) ,_month(month) ,_day(day){ if(!IsValid()) ...原创 2018-07-09 18:31:14 · 1802 阅读 · 0 评论 -
C++:指针与引用
指针&引用引用引用“&”是C++新增的概念,这里的“&”不是取地址的语义。引用不是定义一个新的变量,而是给已经定义的变量重新起一个别名格式:类型 &引用变量名 = 以定义的变量名eg:int a =10;int& b = a;相当于给a取了个别名,叫b。也就是说,b原创 2018-06-26 23:05:53 · 177 阅读 · 0 评论 -
C++:内联函数与友元函数
const修饰成员函数const修饰成员函数:在成员函数后面加const,const修饰指针所指向的对象,也就是说保证调用这个const成员函数的对象在函数内不会被改变。class Date{public: void Display() { cout<<_year<<_month<<_day<<endl...原创 2018-06-30 23:31:05 · 1151 阅读 · 1 评论 -
C++:命名空间,函数重载与缺省参数
本篇博客主要针对与c与c++不同的地方做以总结。C++:在C的基础上添加了一些新的特性 C++的学习主要分为以下几个大的板块。 - c - 类 &amp; 对象 - 继承 &amp; 多态 - 模板 &amp; 泛型编程 - 异常处理 - C++库 &amp; STL也就是说,之前我们所学过的c语言的所有知识在c++中仍然适用。数据类型内置类型自定义类型:stru...原创 2018-06-26 10:02:07 · 221 阅读 · 0 评论 -
C++:this指针 and 类的六个默认成员函数
首先来看一个例子:class Date{public: void Show() { cout&amp;lt;&amp;lt;_year&amp;lt;&amp;lt;&quot;-&quot;&amp;lt;&amp;lt;_month&amp;lt;&amp;lt;&quot;-&a原创 2018-06-29 17:23:54 · 544 阅读 · 0 评论 -
C++:智能指针
首先,为什么需要智能指针?来看下面这段代码bool doSomething(){ // 如果时间执行失败了就返回false return false;}// 为了避免内存泄漏和文件描述符泄漏,我们需要写出以下这样冗余的代码// 我们需要一种方法让他自动的释放掉void Test1(){ int* p1 = new int[2]; FILE* ...原创 2018-08-09 18:06:09 · 248 阅读 · 0 评论