c++
文章平均质量分 75
qq_39412582
这个作者很懒,什么都没留下…
展开
-
浅谈C++函数重载和引用
单看名字就可以知道,C++就是C语言的升级版,也常叫做C Plus Plus,是一门面向对象的语言,而C语言则是一门面向过程的语言,这里我们简要介绍一下面向对象和面向过程的区别。面向对象:简单来说就是把一个问题分成多个对象,强调解决问题的行为表现。面向过程:面向过程就是分析问题和解决问题的步骤和方法。举一个生活中很常见的例子:...原创 2018-06-20 23:12:04 · 3105 阅读 · 2 评论 -
进制转换
这道题是我在ACM上看到的一道算法题,代码实现及结果如下,具体想法和注释都在代码中标识出来了,有什么疑问请留言。#include <iostream>using namespace std;#include <string>// x,y进制数 x>=2,y<=36// s x进制数,每一位的第 10~35 用A~Z表示 为了方便计算str...原创 2018-09-07 19:14:32 · 239 阅读 · 4 评论 -
C++类型转换
我们先来看一看以前是怎么定义数据类型转换的:#include &lt;iostream&gt;using namespace std;void Test(){ //隐式的类型转换 int i = 10; double d = i; printf("%d ,%.2f\n", i, d); //显式的强制类型转换 int* p = &a...原创 2019-06-05 16:39:09 · 3910 阅读 · 1 评论 -
动态内存管理常见面试题
学完C语言动态内存管理 和 C++动态内存管理我们就应该深入的去对比和了解两个的特性。一 、 malloc/free和new/delete异同点共同点:都是从堆上开辟空间,最后都需要手动释放不同点:malloc/delete是标准库函数,new/delete是操作符new创建对象时会调用构造函数+开空间 ;delete会调用析构函数,而malloc/free只会开空间,而不会调用构造...原创 2018-11-05 20:40:52 · 375 阅读 · 1 评论 -
C++模板一
前言再写模板之前我们先来回忆一下以前我们在将函数重载是说过,在C++中是可以允许同名函数存在,只要函数参数个数,类型其中之一不同,就可以实现不同的函数功能。看看代码,回忆回忆:int Add(int left, int right){ return left + right;}double Add(double left, double right){ return left +...原创 2018-11-13 17:51:26 · 237 阅读 · 0 评论 -
C++之动态内存管理
C++动态内存开辟回忆C语言再写C++动态内存开辟之前,我们先来回忆下C语言中是怎么做到动态内存开辟的吧。我们知道C语言是通过 malloc、realloc、calloc三个函数来动态开辟内存空间,虽然都是动态开辟内存空间,但具体操作却又有很大不同,开辟的空间也有差异,总之用起来非常麻烦。如果记得不太清楚具体是怎么用的话,请移步C语言动态内存开辟。主角出场 new、delete我们知道C...原创 2018-11-05 19:29:07 · 315 阅读 · 0 评论 -
动态内存管理----单例模式
什么是单例模式呢?一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。...原创 2018-11-20 22:01:14 · 289 阅读 · 0 评论 -
对象数组、对象指针
今天老弟问了我一道题,是关于对象指针和对象数组的题目,当时竟然有点懵逼,一下子竟不知道这是些什么意思,然后百度查了查资料,现总结如下:对象数组顾名思义,对象数组跟数组类似,我们把型于Student s[]={Student("peter",18),Student("Suum",19)};叫做对象数组,切结后面不要忘了 ;看个例子:class Date{public: Date(int...原创 2019-01-01 23:57:27 · 988 阅读 · 0 评论 -
C++之异常处理
在以前我们学习C语言的时候,如果遇到错误我们是怎么处理的呢?直接 return错误码?还是直接终止程序(assert)?当然还有不常见的C 标准库中setjmp和longjmp组合。这些方法我相信大家在写代码的时候都会遇到各种各样的情况的吧。而且,C语言出错返回的错误码,我们经常需要自己去百度查询,非常麻烦。但是,在C++中,大佬们给我们提供了异常处理机制,这就解决了C语言中程序崩溃之后我们...原创 2019-01-24 12:41:41 · 149 阅读 · 1 评论 -
C++ 之 多态(非常非常重要,重点在后面)
什么是多态? 顾名思义就是同一个事物,在不同场景下的多种形态。 下面会具体的详细的介绍。原创 2018-08-16 09:40:33 · 81758 阅读 · 43 评论 -
继承体系下派生类的对象模型
看到标题我们首先应该想到的是什么是对象模型? 那好,什么是对象模型呢?对象模型就是对象中非静态成员变量在内存中的布局形式。但是,我们要看这个布局只能在内存中查看,在监视窗口可能不会看到我们想要看到的结果。那么什么又是继承呢? 继承:就是在一个已存在的类的基础上建立一个新的类,而这个新的类又从已有的类获得其原有的特性,这个现象叫做类的继承。 派生:从父类成生出来的子类叫做类的派生。 ...原创 2018-08-13 11:25:24 · 383 阅读 · 0 评论 -
C++总结二----this指针 & 六个成员函数
This指针在C++总结的第一篇博文当中我们在讲函数重载部分时提到过this指针,接下来我们就跟着博主一起深入的去了解到底什么是this 指针。我们知道,每个对象的数据成员都分别占有存储空间,如果对同一个类定义了n个对象,那么就会有n组同样大小的空间可以存放n个对象中的数据成员。那么问题来了,当不同对象的成员函数引用数据成员时,编译器怎么能保证引用的就是所指定的对象的成员呢? 先看个例子...原创 2018-07-29 10:27:04 · 696 阅读 · 1 评论 -
C++总结三----静态成员,const修饰类成员,内联函数
非常感谢您能参观我的博客,有什么想法请留言,必回。一 · 静态成员我们知道全局变量能够实现数据共享,如果在多个程序文件中有多个函数,每一个函数中都可以来改变全局变量的值,但是这样做是不安全的,如不小心改错就会导致程序崩溃,因此在实际运用中很少用到全局变量。 但是有时候我们就是要用到多个对象之间实现数据共享,除了全局变量,就是我们今天要提到的静态成员。1.1 静态数据成员class...原创 2018-07-26 21:08:01 · 503 阅读 · 0 评论 -
C++友元函数
先解决一个“历史遗留”问题 前面我们在写类和对象总结时提出了一个问题:如何访问私有成员? 当时我们只给出了两种解决方案:一种是通过设置一个共有的成员函数接口来访问,另一种是通过指针来访问。 今天给出第三种解决方案:通过友元函数来访问私有成员。class Date{ friend void PrintInfo(const Date& d); //声明友元函数publ...原创 2018-07-30 15:57:21 · 278 阅读 · 0 评论 -
类和对象总结一
写这个博客之前我不得不再说一下C语言和C++的区别了。我们都知道C语言是一个面向过程的语言,而C++是一门面向对象的语言。那么,到底什么是面向过程,什么又是面向对象呢? (为了简化博客长度,我们插一个关于这两个的区别的链接,这里不再赘述) https://blog.csdn.net/zqixiao_09/article/details/50548316对象:客观世界里的一切事物都可以看作是...原创 2018-07-22 21:57:01 · 5423 阅读 · 3 评论 -
C++运算符重载之 日期类
学完运算符重载和友元函数,我们就应该学会运用这些函数,而写一个日期类的代码基本包含了运算符重载的大部分东西。 接下来就看一看这个日期类的到底该怎么写。 首先,简单接介绍一下这个日期类的基本功能:// 当前日期days天后是什么日期? Date operator+(int days); // 当前日期days天前是什么日期? Date operator-(int days); // ...原创 2018-08-04 16:09:54 · 2243 阅读 · 0 评论 -
String类之 深拷贝
上篇博客我们说浅拷贝存在同一块资源被多次释放的问题,那么这篇博客就是给浅拷贝擦屁股,解决它遗留下来的问题。解决这个问题,我们可以考虑单独给 s2 开辟一块空间,只将 s1 里的内容拷贝到 s2。 看一看我们代码是怎么实现的吧:class String{public: String(const char* pStr = "") { if (NULL ==...原创 2018-08-14 21:22:53 · 624 阅读 · 0 评论 -
C++之 String类 浅拷贝
在C语言当中,我们定义一个字符串是怎么定义的呢?char arr=&quot;Hello&quot;; //这是一个字符串在字符串里我们有很多相关的操作,比如strlen strcmp strcpy等等,但是有些情况下我们来实现这些函数时有些不方便,C++就给我们提供string这种类型方便了很多操作。在string类中,我们简单的封装了构造函数,拷贝构造函数,赋值运算符重载和析构函数,...原创 2018-08-14 21:24:25 · 808 阅读 · 1 评论 -
String类之引用计数和写时拷贝
string 类写到这里已经是升级版了,大家能看懂多少算多少,在面试的时候尽量不要给面试官说你懂这个,万一把自己搞糊涂了,岂不是得不偿失。 好了 ,废话到此结束,正文开始。引用计数我们知道,在浅拷贝当中,由于多个对象共用同一块空间,最后释放内存的时候导致同一块内存多次释放而出现问题,那么问题来了,能否保证当多个对象共同使用同一块空间时,该空间只释放一次? 答案当然是可以的了。 引用计...原创 2018-08-14 23:26:30 · 293 阅读 · 0 评论 -
C++之智能指针
智能指针原创 2019-01-29 22:14:07 · 367 阅读 · 1 评论