![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 88
C++知识点总结及其练习
双鱼211
这个作者很懒,什么都没留下…
展开
-
C++ 多态的原理,虚函数,虚函数的重写,虚函数表,静态绑定,动态绑定
文章目录:原创 2021-06-06 17:59:22 · 1291 阅读 · 14 评论 -
C++ 继承的概念,同名隐藏,赋值兼容规则,继承中的友元与静态成员,多继承的构造顺序,菱形继承及其存在的问题,虚拟继承及其原理
文章目录:1.继承的定义1.继承的定义原创 2021-06-02 21:59:02 · 380 阅读 · 7 评论 -
C++ STL——模拟实现vector
文章目录:1. vector的介绍2.STL—vector的使用2.1 vector的构造接口2.2 vector iterator 的使用2.3 vector空间增长问题2.4 vector 的增删查改交换接口3. vector 迭代器失效问题3.1 对于vector可能引起迭代器失效的操作1. vector的介绍点击查看—>[vector的文档介绍](1)vector是表示可变大小数组的序列容器。(2)就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对原创 2021-05-07 23:55:10 · 751 阅读 · 13 评论 -
C++ STL——模拟实现List
文章目录:1. STL-List的使用1.1 list的构造1.2 List迭代器的使用1.3 list capacity1.4 获取头尾元素(因为返回的是引用,所以可赋值修改)1.5 List的修改方法1. STL-List的使用1.1 list的构造可以通过如下两种方式对链表进行访问方法一:#include<iostream>#include<list>using namespace std;void main(){ list<int> my原创 2021-05-05 21:59:11 · 437 阅读 · 3 评论 -
C++ STL-List源码分析
文章目录:对源码中的私有成员数据进行刨析,根据缺什么补什么,对私有成员的数据类型进行声明源码中私有成员如下:刨析后如下:#include<iostream>using namespace std;namespace code{ template <class _Ty> class list { public: //类型的萃取 typedef size_t size_type;//大小的类型 typedef _Ty value_type原创 2021-04-25 14:23:52 · 2234 阅读 · 6 评论 -
STL-List-源码
// list standard header#if _MSC_VER > 1000#pragma once#endif#ifndef _LIST_#define _LIST_#include <cstddef>#include <functional>#include <iterator>#include <memory>#include <stdexcept>#include <xutility&g原创 2021-04-25 14:13:17 · 324 阅读 · 0 评论 -
C++ 模板初阶(函数模板&类模板),非类型模板参数,零初始化
文章目录:1. 前言-引入模板2. 函数模板2.1 函数模板的概念2.2 函数模板的格式2.3 函数模板的原理2.4 函数模板的实例化2.4.1 隐式实例化:让编译器根据实参推演模板参数的实际类型2.4.2 显示实例化:在函数名后的<>中指定模板参数的实际类型2.5 模板参数的匹配原则3. 类模板3.1 类模板的定义格式3.2 类模板的实例化4. 非类型模板参数4.1 为什么存在非类型模板参数4.2 非类型的函数模板参数4.3 非类型模板参数的限制5. 零初始化1. 前言-引入模板之前我们原创 2021-04-22 23:33:12 · 2243 阅读 · 2 评论 -
C++ 浅谈new/delete, operator new/operator delete,malloc/free和new/delete的区别 ,内存泄漏
文章目录:1. C/C++内存分布2. C语言中动态内存管理方式3. C++内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型1. C/C++内存分布(1) 栈又叫堆栈,非静态局部变量/函数参数/返回值等等都在栈上,栈是向下增长的(2)内存映射段是高效I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享内存,做进程间通信(3)堆用于程序运行时动态内存分配,堆是向上增长的(4)数据段–存储全局数据和静态数据 (变量)(5)代原创 2021-04-18 22:52:24 · 1178 阅读 · 13 评论 -
C++ 初始化列表,explicit关键字,static成员,友元(友元函数,友元类),内部类
文章目录:1. 友元1.1 前言1.2 友元的分类1.3 友元函数1.4 友元类1. 友元1.1 前言当我们想打印私有成员时,我们可以写一个函数,如何让这个函数返回这个私有对象,调用这个函数打印,代码如下#include<iostream>using namespace std;class Test{public: Test(int data = 0) :m_data(data) {} Test(const Test& t) { m_data = t.m_d原创 2021-04-17 14:06:08 · 806 阅读 · 6 评论 -
C++ 类的6个默认成员函数(构造函数,析构函数,拷贝构造函数,赋值重载函数,取地址及const取地址操作符重载)
文章目录:1. 类的6个默认成员函数2. 构造函数2.1 前言2.2 什么是构造函数2.3 构造函数的特性3. 析构函数3.1 前言3.2 析构函数3.3 析构函数的特性3.4 析构函数按什么顺序析构4. 拷贝构造函数(对象初始化对象的过程)4.1 前言4.2 什么是拷贝构造函数4.3 拷贝构造函数的特性4.4 拷贝构造函数参数中的const是否可以去掉4.5 拷贝构造函数参数中&是否可以去掉5.1. 类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是,任何原创 2021-04-15 17:36:56 · 1580 阅读 · 10 评论 -
C++ const的使用,this指针,常方法(面试最爱问的this指针)
文章目录:1. const的使用2. this指针2.1 前言(this指针的引出)2.2 什么是this指针1. const的使用const的使用有以下四种情况:const int* pint const *pint* const pconst int* const p我们可以通过以下图解来理解这四种情况const到底修饰的是谁:当const在 “ * ” 的左边,则指向的值不能被修改当const在 “ * ” 的右边,则自身不能被修改2. this指针2..原创 2021-04-09 15:04:45 · 2128 阅读 · 12 评论 -
C++ 类,类的封装,访问限定符,类的作用域,类的实例化,类对象大小计算,类对象的存储方式
文章目录:1. 面向过程和面向对象2. 类1. 面向过程和面向对象C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题C++是基于面向对象的,关注的是对象 ,将一件事情拆分成不同的对象,靠对象之间的交互完成2. 类在C语言中,结构体中只能定义变量,如下图所示:...原创 2021-04-01 23:50:27 · 261 阅读 · 2 评论 -
[C++] 引用,内联函数,auto关键字,基于范围的for循环,指针空值nullptr
文章目录:1. 引用1.1 序言1.2 引用的基本概念1.3 引用的特征1.4 常引用1.5 引用的场景1.6 传值和传引用效率对比1.7 引用和指针的区别2. 内联函数1. 引用1.1 序言在学习C语言阶段,我们学习了如何写一个函数来实现两个数的交换,接下来我们将一步步实现这个交换函数当我们初次接触C语言时,实现一个交换函数我们可能会写出如下代码:void swap(int a, int b){ int tem = a; a = b; b = tem;}显然这个函数是不能实现真原创 2021-03-31 22:24:27 · 477 阅读 · 2 评论 -
C++ 函数重载,缺省参数,命名空间
文章目录:1. 函数重载1.1 为什么C++支持重载,而C语言不支持重载你?1.2 Visual C++的名称修饰规则如下:1.3 extern "C"2. 缺省参数1. 函数重载函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据不同的问题函数参数个数不同函数参数类型不同函数参数顺序不同不能依靠返回值不同测试如下:#include<iostream>原创 2021-03-30 17:58:07 · 1161 阅读 · 3 评论