C++学习
文章平均质量分 88
落禅
风吹柳叶遮黄雀,薄翅不知已落蝉
展开
-
多态的深入理解
多态的深入理解1.多态通俗的说,就是多种形态,具体点的就是去完成莫格欣慰,当不同的对象去完成时会产生不同得形态2.多态构成的条件(1).必须通过基类的指针或者引用调用虚函数(2).被调用得函数必须是虚函数,且派生类必须对基类的虚函数进行重写class Person{ public: virtual void ByTicket() { cout<<"买全价票"<<endl; }}class Student:pu原创 2021-10-16 21:03:48 · 371 阅读 · 4 评论 -
C++继承不会怎么办?一篇文章带你搞懂C++继承!!!
继承继承:保证原有类的基础上进行扩展,是类设计层次的复用1.class 子类名称:基础方式(public,protected,private) 父类(基类)2.继承中private和protected的区别: 在类里面private和protected几乎没什么区别,但是在继承里面二者有一定的区别在继承中,private继承的都不可见,但是protected方式继承的都可以看见1.基类的private成员在派生类中无论以什么方式继承都是不可见的,这里的不可见是指基类的私有成员还是被继承到了派生类原创 2021-09-26 16:07:29 · 688 阅读 · 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 · 571 阅读 · 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 · 1441 阅读 · 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 · 409 阅读 · 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 · 717 阅读 · 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 · 423 阅读 · 36 评论 -
深入理解C++类和对象(中)
深入理解C++类和对象(中)如果一个类里面什么也不写,那么它里面真的什么都没有吗?答案是否定的,如果一个类是空类,那么编译器会为我们提供6个默认成员函数,分别为构造函数,析构函数拷贝构造函数,赋值用算符重载函数,&操作符重载,const修饰的取地址操作符重载,那么接下来本片文章将带你来理解这6个默认成员函数1.构造函数构造函数是一个特殊的成员函数,类名与函数名相同,主要完成对对象的初始化特点:1.函数名与类名相同2.没有返回值,也不写void3.对象实例化时编译器会自动调用对应原创 2021-05-26 20:38:26 · 1874 阅读 · 68 评论 -
深入理解C++类和对象(上)
1.面向对象的初步引入C语言注重过程C++注重面向对象例如:点外卖C语言:注重下单–>接单–>送单这个过程,通过一个个函数来实现这三个过程C++:客户–>商家–>骑手C++更注重对象之间的交互,利用对象之间的交互来完成任务,每个对象都有不同的行为,例如客户下单,商家接单制作,骑手送单C++通过这三个对象之间的行为交互来实现整个送外卖的过程,通过这个例子我们可以先简单理解一下c++中的对象概念2.类的引入在C++中,结构体内不仅可以定义数据,还可以定义函数例如原创 2021-05-21 17:50:57 · 1120 阅读 · 36 评论 -
一篇文章带你初识C++
1.命名空间关键字:namespace在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。命名空间的定义定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名 空间的成员。//1. 普通的命名空间namespace N1 // N1为命名空原创 2021-05-19 20:51:12 · 1313 阅读 · 36 评论