![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础语法
文章平均质量分 89
qx LIU 2000
这个作者很懒,什么都没留下…
展开
-
C++ 基础 --多态
C++--多态多态多态的概念多态的定义虚函数虚函数的重写虚函数重写的两个例外C++11 override 和 final重载、重写(覆盖)、隐藏(重定义)对比多态多态的概念当完成某个行为时,不同的对象去完成,会有不同的状态举个小栗子:买票这个行为,学生买会有打折,普通人买全价票,军人可以优先购票 —多态性为多态分为静态多态和动态多态,其中静态多态就是我们所熟知的函数重载。这里静态的含义是指:在编译期间完成的事件而我们今天主要了解的是动态多态,也就是在进程运行期间的多态。多态的定义多态是不同原创 2021-10-13 17:35:51 · 256 阅读 · 0 评论 -
C++--模板进阶
模板进阶一、非类型模板参数二、模板的特化三、模板不支持分离编译一、非类型模板参数我们先来举一个例子:当我们用宏去控制同种类型数组的大小时,无法做到完全的统一,总会有浪费或是不够。此时我们的非类型模板参数就发挥作用了Tips:1.通常给非类型模板参数赋缺省值,这样开辟一个数组就无比的方便了2.这里的非类型模板参数赋值时,仅可为整数二、模板的特化首先回顾一下模板的概念:模板就是编译器自动给我实例化出一份符合逻辑的代码。但是总有些情况,编译器无法给出正确的逻辑。比如此时:当我们比较原创 2021-09-16 17:26:49 · 376 阅读 · 0 评论 -
C++初阶--vector前传--剖析迭代器失效
vector中的迭代器失效问题今天我们来看看迭代器失效的主要原因与解决方法首先我们要了解到,迭代器对于vector阶段来说,我们完全可以把它看成一个指针来理解。我们先来简单实现一下:首先有一个重定义:typedef T* iterator ;就是定义一个指针类型iterator begin(){ return _start;}这不就是一个简单的迭代器吗?当然这是一个普通容器,当然还有const版本,我们这里不深入说了。我们在正式开始主题前,先看一个小问题:原创 2021-07-29 20:12:03 · 261 阅读 · 1 评论 -
C++初阶--string的深入理解及补充
模拟实现完成了string,今天我们来深度理解一下string目录:第一块:有关const修饰函数的问题第二块:有关string实现方案的问题第一块:有关const修饰函数的问题首先我们先对string下一个定义:string 是一个管理字符数组的类,并且这个字符数组的结尾要用‘\0’进行标识。我们主要了解了以下的几个有关string的内容拷贝构造和赋值运算符重载的深拷贝增删查改等相关接口重载了一些常见的运算符迭代器之前有一个不太容易理解的点:第一组:size_t size()原创 2021-07-26 20:54:32 · 193 阅读 · 0 评论 -
二刷C++--深入理解基础特性篇
深入理解C++基本特性一、函数重载1.1 函数名修饰规则补充:编译链接过程二、引用一、函数重载函数重载是什么呢?概念:函数名相同,参数不同(类型、个数、顺序)为什么C++支持函数重载,而C语言显然不支持呢?那就得提到另一个概念:函数名修饰规则1.1 函数名修饰规则补充:编译链接过程一个程序运行起来,首先要有几个基本的过程:预处理、编译、汇编、链接。我们今天来简单回顾一下这几个过程发生的事情。上一个小小的图:预处理:将所有的#define 删除,并展开所有的宏定义。处理所有的条件原创 2021-07-19 22:22:26 · 119 阅读 · 0 评论 -
C++初阶--模板
c++模板1. 泛型编程2. 函数模板2.1 函数模板的概念2.2 函数模板的原理2.3 函数模板的实例化2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化1. 泛型编程用C语言实现交换函数是不是只能这样呢?使用函数重载虽然可以实现,但是有以下几个不好的地方:重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型的出现时,就需要增加函数代码的可维护性比较低,一个出错可能所有的重载均出错。2. 函数模板2.1 函数模板的概念函数模板代表了一个函数原创 2021-06-20 22:12:46 · 182 阅读 · 3 评论 -
C++初阶--内存管理
C++——内存管理1. c/c++内存分布2. C语言中动态内存管理方式2.1 malloc /calloc/realloc和free3 . c++内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作符自定义类型1. c/c++内存分布栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈向下生长。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享内存,做进程间通信。堆用于程序运行时的动态内存分配,堆向上增长。数据段–存原创 2021-06-17 15:30:47 · 446 阅读 · 1 评论 -
C++初阶--类和对象(上)
类和对象(上)1.面向过程和面向对象初步认识2.类的引入3. 类的定义4. 类的访问限定符及封装4 .1访问限定符4.2 封装5.类的作用域6.类的实例化1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事拆分为不同的对象,靠对象之间的交互完成。举例:外卖系统面向过程:下单、接单、送餐等过程面向对象:客户、商家、骑手等对象。2.类的引入c语言中,结构体中只能定义变量,在c++中,结构原创 2021-05-24 18:25:16 · 217 阅读 · 5 评论