
C++学习
文章平均质量分 88
落禅
风吹柳叶遮黄雀,薄翅不知已落蝉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多态的深入理解
多态的深入理解 1.多态 通俗的说,就是多种形态,具体点的就是去完成莫格欣慰,当不同的对象去完成时会产生不同得形态 2.多态构成的条件 (1).必须通过基类的指针或者引用调用虚函数 (2).被调用得函数必须是虚函数,且派生类必须对基类的虚函数进行重写 class Person { public: virtual void ByTicket() { cout<<"买全价票"<<endl; } } class Student:pu原创 2021-10-16 21:03:48 · 417 阅读 · 4 评论 -
C++继承不会怎么办?一篇文章带你搞懂C++继承!!!
继承 继承:保证原有类的基础上进行扩展,是类设计层次的复用 1.class 子类名称:基础方式(public,protected,private) 父类(基类) 2.继承中private和protected的区别: 在类里面private和protected几乎没什么区别,但是在继承里面二者有一定的区别 在继承中,private继承的都不可见,但是protected方式继承的都可以看见 1.基类的private成员在派生类中无论以什么方式继承都是不可见的,这里的不可见是指基类的私有成员还是被继承到了派生类原创 2021-09-26 16:07:29 · 736 阅读 · 5 评论 -
C++模板进阶
C++模板进阶 # C++模板初阶 1.非类型模板参数 template<class T, size_t N> class Array { private: T arr[N]; }; 模板参数分为类型参数和非类型参数,如上述所述代码就是非类型模板参数 非类型参数:出现在模板的参数类表中,更在class或者typename之类的参数类型名称 非类型参数就是作为一个类(函数)的参数,在模板中该参数可以被当作常量来使用 比如库里面的Array就是使用非类型模板参数来完成的 当原创 2021-09-15 10:03:35 · 663 阅读 · 26 评论 -
stack,queue,priority_queue的模拟实现
stack,queue,priority_queue的模拟实现 stack的模拟实现 栈是一种先入后出的数据结构,主要具有以下接口 上面就是stack(栈)的主要功能了,而这次我们要利用自己写的栈来实现这些结果 在上面的例子中我们利用系统提供的stack实现了对栈的push,pop,top,size,empty等接口,下面我们就要利用自己所写的栈模拟实现这些功能,具体的功能我会在下面代码中详细解答 namespace hello { //该种写法为容器适配器的写法:借助deque容器来原创 2021-09-11 17:07:10 · 1478 阅读 · 33 评论 -
C++模板初阶
C++模板初阶 1.函数模板 1.函数模板的语法 C++支持模板这一泛性编程,提高了C++的复用性,代码的简洁度 看下面的例子 实现一个交换函数 void Swap(int& a, int& b) { int temp = a; a = b; b = temp; } 但是上面这个函数只能支持两个整形数据的交换,如果要实现两个浮点数的交换,那么我们又要重载上面的Swap函数 void Swap(double& a, double& b) { double t原创 2021-06-05 16:22:53 · 439 阅读 · 44 评论 -
CC++内存管理
C/C++内存管理 1.内存四区 1.栈区:用来存储局部变量,函数的形参 栈自上向下生长的 2.堆区:用于存储程序运行时动态开辟的内存,一般由程序员自己动态申请与释放,如果没有释放就会造成内存泄露 3.静态区:用来存储静态变量,全局变量 4.代码区(常量区):用来存储代码段,只读变量 2.C语言中内存管理的方式 C语言中通过malloc/calloc/realloc动态申请内存空间,而用free来释放这块内存,这里我们不在对malloc/calloc/realloc展开详细的讲解,感兴趣的可以去看看我原创 2021-06-05 13:51:39 · 762 阅读 · 25 评论 -
深入理解C++类和对象(下)
深入理解C++类和对象(下) 文章目录深入理解C++类和对象(下)1.const修饰的成员函数2.初始化列表3.static关键字4.友元5.内部类 1.const修饰的成员函数 类中的成员函数后加const称为const修饰的成员函数,在被const修饰后,类中的成员变量不可以被改变 被const修饰后,表面上修饰的是成员函数,实际上修饰的是成员函数默认参数的this指针,表示this指针指向的值不可以被修改 class Person { public: Person(int a, int b)原创 2021-06-02 15:01:05 · 458 阅读 · 36 评论 -
深入理解C++类和对象(中)
深入理解C++类和对象(中) 如果一个类里面什么也不写,那么它里面真的什么都没有吗? 答案是否定的,如果一个类是空类,那么编译器会为我们提供6个默认成员函数,分别为构造函数,析构函数拷贝构造函数,赋值用算符重载函数,&操作符重载,const修饰的取地址操作符重载,那么接下来本片文章将带你来理解这6个默认成员函数 1.构造函数 构造函数是一个特殊的成员函数,类名与函数名相同,主要完成对对象的初始化 特点: 1.函数名与类名相同 2.没有返回值,也不写void 3.对象实例化时编译器会自动调用对应原创 2021-05-26 20:38:26 · 1931 阅读 · 68 评论 -
深入理解C++类和对象(上)
1.面向对象的初步引入 C语言注重过程 C++注重面向对象 例如:点外卖 C语言:注重下单–>接单–>送单这个过程,通过一个个函数来实现这三个过程 C++:客户–>商家–>骑手 C++更注重对象之间的交互,利用对象之间的交互来完成任务,每个对象都有不同的行为,例如客户下单,商家接单制作,骑手送单 C++通过这三个对象之间的行为交互来实现整个送外卖的过程,通过这个例子我们可以先简单理解一下c++中的对象概念 2.类的引入 在C++中,结构体内不仅可以定义数据,还可以定义函数 例如原创 2021-05-21 17:50:57 · 1164 阅读 · 36 评论 -
一篇文章带你初识C++
1.命名空间 关键字:namespace 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的。 命名空间的定义 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名 空间的成员。 //1. 普通的命名空间 namespace N1 // N1为命名空原创 2021-05-19 20:51:12 · 1369 阅读 · 36 评论