![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 80
蜗壳2423
这个作者很懒,什么都没留下…
展开
-
C++多态详解(虚函数、重写、虚函数表指针、虚函数表等)
C++多态详解!1.什么是多态?2.多态的实现3.多态的底层原理1.什么是多态?同样的操作,不同的对象去执行的时候会产生不同的结果。多态是在继承关系中的不同类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。举个例子:class person{public: virtual void BuyTicket() { cout << "普通人-全价买票" << endl; }};原创 2021-11-28 17:30:30 · 823 阅读 · 0 评论 -
C++中的继承详解
C++中的继承1 继承的概念、定义及继承规则1.1 继承的概念1.2 继承的定义2 派生类与基类的对象赋值转换规则3 派生类中同名隐藏问题4 派生类与基类默认成员函数间的调用关系5 菱形继承和虚拟继承5.1 什么是菱形继承?5.2 菱形继承产生的问题5.3 解决菱形继承问题的方法——虚拟继承1 继承的概念、定义及继承规则1.1 继承的概念继承是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结原创 2021-11-04 12:13:58 · 465 阅读 · 0 评论 -
priority_queue(优先级队列)的用法,模拟实现priority_queue(堆排序、仿函数)
这里写目录标题priority_queue二级目录三级目录priority_queue二级目录三级目录原创 2021-11-03 18:46:54 · 433 阅读 · 0 评论 -
C++中vector和list的区别
vectorlist底层结构动态顺序表,连续的空间带头节点的双向循环链表访问元素支持随机访问,访问效率O(1)不支持随机访问,访问元素效率O(N)插入尾插效率O(1),其他位置插入要移动数据,效率低不需要移动节点,任意位置插入效率O(1)删除尾删效率O(1),其他位置删除要移动数据,效率低不需要移动节点,任意位置删除效率O(1)空间利用率底层空间连续,不易造成内存碎片,空间和缓存利用率高底层节点空间不连续,易造成内存碎片,空间和缓存利用率低...原创 2021-09-27 22:10:18 · 133 阅读 · 0 评论 -
C++中list的用法,模拟实现list
list用法,模拟实现list1. list用法2. 模拟实现list1. list用法构造list() 无参构造函数list(size_type n, const value_type& val = value_type());构造一个list中包含n个value元素list (const list& x) 拷贝构造list (InputIterator first, InputIterator last) 用迭代器[first,last)区间的元原创 2021-09-27 20:43:49 · 238 阅读 · 0 评论 -
C++中vector的用法、vector模拟实现、vector中迭代器失效详解!
vector的用法、vector模拟实现、vector中迭代器失效1. vector用法2. 模拟实现vector3. 迭代器失效问题1. vector用法2. 模拟实现vector3. 迭代器失效问题原创 2021-09-20 12:03:54 · 221 阅读 · 0 评论 -
C++中string的用法,模拟实现string详详解!
模拟实现string1. STL容器——string1.1 string是什么?1.2 string有哪些成员函数?1.3 string的成员函数如何使用?2. 模拟实现string2.1 模拟实现一些常用的接口,声明这些成员函数2.2 代码实现string常用的成员函数1. STL容器——string1.1 string是什么?1.2 string有哪些成员函数?首先来看看c++官网中string介绍了哪些成员函数:1.3 string的成员函数如何使用?它们的使用方法如下:2. 模拟实现原创 2021-09-09 21:29:37 · 75 阅读 · 0 评论 -
C++泛型编程—函数模板、类模板
这里写目录标题1、函数模板1.1 什么是函数模板?1.2 为什么要有函数模板?1.3 函数模板怎样用?1、函数模板1.1 什么是函数模板?函数模板代表了一个函数家族,函数模板与类型无关,在使用时才被参数化,会根据实参类型生成相对应的特定函数版本。- 函数模板的原理:函数模板是一个蓝图,它本身并不是函数,是编译器通过调用时传递的参数产生特定具体类型函数的模具。模板就是将我们写的重复代码交给了编译器去生成1.2 为什么要有函数模板?如果我们要编写一个通用的Add函数,一般情况下要使用函数重载原创 2021-07-28 21:16:11 · 77 阅读 · 0 评论 -
C/C++内存分布及内存管理详解!
C/C++内存分布及内存管理详解!1.C/C++内存分布二级目录三级目录2.C/C++内存管理方式1.C/C++内存分布二级目录三级目录2.C/C++内存管理方式原创 2021-07-21 21:13:24 · 228 阅读 · 0 评论 -
友元函数、友元类、内部类详解!
友元函数什么是友元函数?友元函数的作用?什么是友元函数?类的友元函数可直接访问类中的私有成员变量,该函数是定义在类外的普通函数,不属于任何类,需要在类中加friend关键字声明。比如我们在重载自定义类型输入输出操作符时就需要将操作符重载函数声明为友元函数:class Date{ //此处就是友元函数的声明 friend ostream& operator<<(ostream& out,const Date& d); friend istream&a原创 2021-06-07 20:43:48 · 158 阅读 · 0 评论 -
const成员、构造函数-初始化列表、static成员、匿名对象详解!
文章目录1.const修饰类的成员函数2.再谈构造函数1.const修饰类的成员函数示例1:示例2:2.再谈构造函数构造函数有两种初始化成员变量的方法:1. 在创建对象时定义成员变量,在构造函数体内对成员变量赋相当于 :int a;a = 1;Date(int year = 2020, int month = 3, int day = 3){ //在构造函数体内对定义好的成员变量进行赋值 _year = year; _month = month; _d原创 2021-05-30 22:12:26 · 226 阅读 · 0 评论 -
C++中类的6个默认成员函数:构造、析构、拷贝构造、赋值运算符重载
1.构造函数1.1 什么是构造函数?在定义对象时,构造函数会初始化该对象原创 2021-05-24 21:57:26 · 406 阅读 · 4 评论 -
C++中类的定义、this指针详解!
类的定义、this指针1.类1.1 什么是类?1.2 类的定义:1.3 类的访问限定符1.4 类的作用域二级目录三级目录1.类1.1 什么是类?C语言结构体的升级,不但可以在集合中定义变量,而且可以定义函数。1.2 类的定义:class(类名){(类体:成员变量和成员函数)}; //后面一定要加上分号。声明和定义都放在类体中定义:class test{public: void Print() { cout << a << endl; }pri原创 2021-05-08 21:39:32 · 568 阅读 · 0 评论 -
引用、内联函数、auto关键字详解!
引用、内联函数、auto关键字详解!1.引用1.1 什么是引用?1.2 引用如何使用?1.3 常引用1.4 引用有什么作用?2.内联函数3.auto关键字1.引用1.1 什么是引用?引用就是给一个已经存在的变量取了别名,不会定义新变量,也不会开辟新的空间,它和它引用的变量共用同一块内存空间。例如:诸葛亮就有“卧龙”的外号,这两个名字指的都是同一个人。1.2 引用如何使用?引用定义的方法:类型& 引用变量名 = 引用实体;有几个需要注意的点:1. 这里的类型必须与引用实体类型相同;原创 2021-05-05 20:10:26 · 319 阅读 · 0 评论 -
C++函数重载详解!
C++函数重载详解!1.什么是函数重载?2.为什么C语言不支持函数重载,而C++支持,他支持的原理是什么?1.什么是函数重载?C++支持在同一作用域里面可以有功能类似的同名函数,但是他们参数不同(个数或类型必须不同)举个例子:#include <iostream>using namespace std;int Add(int a, int b) //有两个整形参数的Add()函数。{ return a + b;}int Add(int a, int b, in原创 2021-04-24 17:12:28 · 603 阅读 · 0 评论 -
C++入门,命名空间、缺省参数详解!
C++入门1.命名空间1.1 为什么要有命名空间?1.2 什么是命名空间?1.3 命名空间怎样用?1.3.1 命名空间的定义1.3.2 命名空间的使用2.C++输入输出3.缺省参数3.14.函数重载1.命名空间1.1 为什么要有命名空间?C/C++代码中,存在大量的变量、函数和类,对于他们的命名,难免会出现重复的情况,导致代码执行出错。所以,C++设计了命名空间来解决上述问题。1.2 什么是命名空间?一个命名空间会形成一个域,每个域里面的数据都是相互独立的,数据只属于定义自己的命名空间。举个生活原创 2021-04-19 21:54:37 · 177 阅读 · 0 评论