![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
LinYang_code
这个作者很懒,什么都没留下…
展开
-
map和unordered_map
对map和unordered_map的概念进行区分理解:相同点:都是STL提供的关联式容器放置的元素都是键值对,并且要求key是唯一的不同点:map是在C++98中提出的,而unordered_map是在C++11中提出模板参数列表不同:map有比较器(默认是按照less的方法对key进行排序)unordered_map哈希函数参数(底层有默认的哈希函数)插入方式不同:map---->按照二叉搜索树先插入元素,然后对树进行调整(颜色更改+旋转处理),unordered_map---原创 2020-09-05 10:58:55 · 371 阅读 · 0 评论 -
重载、同名以及重写
重载概念:重载就是在同一作用域中,函数的名字相同,但参数列表不同,参数列表不同体现在,参数的名字、参数的类型、类型的次序,与函数返回值类型是否相同无关同名隐藏和重写:相同点:都是在继承体系中不同点:同名隐藏可以是函数名相同,也可以是成员变量名相同;但是重写只能是函数名相同对成员的要求不一样,重写对于成员的要求比较严格:对于重写来说,要求基类函数必须是虚函数,而同名隐藏不要求;其次对于函数原型来说:同名隐藏只要求基类和子类的函数名一样,而对于重写来说必须要求基类和子类的函数原型一致可以进行举例原创 2020-09-03 22:05:07 · 503 阅读 · 1 评论 -
面向对象之---封装、继承、多态
在学习C++时,我们都知道C++三大特性:封装、继承、多态今天来整体进行复习一下:首先来看封装:封装的概念:将数据和数据的方法进行有机结合,隐藏对象中的属性和实现细节,仅对外公开接口和对象进行交互—例如电脑的充电口封装的实现:通过类将对象的属性和接口进行有机结合,然后通过访问权限决定各个类成员的访问权限。public、protected、private接下来理解一下继承:继承的概念:继承就是为了实现代码的复用以及体现C++面向对象程序设计的层次结构继承的作用:起到代码复用,子类可以继承父类原创 2020-09-03 15:51:46 · 246 阅读 · 0 评论 -
浅谈类和对象整体概念
***面向对象和面向过程的区别:***在C++中class和struct的区别在C++中class和struct几乎是一样的,也就是struct定义的结构体就是类默认的访问权限不同、默认的继承权限不同在写类模板类型的代码时,class可以出现在模板参数类表中用来声明类型,但是struct不行***C++的三大特性:封装、继承、多态***什么是封装?C++中是如何实现封装的特性?封装的概念:将数据和数据的方法进行有机结合,隐藏对象中的属性和实现细节,仅对外公开接口和对象进行交互------电脑的原创 2020-08-30 00:40:18 · 207 阅读 · 0 评论 -
内联函数详解!!!
内联函数的概念:以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈开销,提高运行效率为什么要有内联函数:1.内联函数在编译时会进行替换,少了函数的压栈开销,提高运行效率2.宏函数的缺点:在预处理时展开了,因此不会进行参数类型检测,并不能进行调试,实现要求严格(参数要求带括号)内联函数和宏函数的区别:C++中有哪些方式可以替代宏:1.宏常量:const类型的常量来进行替换,因为在C++中,被const修饰的变量是常量,const修饰的变量在编译期间会原创 2020-08-30 00:22:10 · 1307 阅读 · 0 评论 -
引用&指针
引用的概念:不是新定义一个变量,而是给已存在的变量取个别名,它和引用的尸体共用一块内存空间。引用的特性:1.引用在定义时必须初始化(要存在引用的实体)2.一个实体可以有多个引用3.引用一旦引用一个实体,再不能引用其他实体引用的分类:1.普通类型的引用:可以通过引用修改其引用的实体2.const类型的引用:主要在函数传参时使用的比较多引用的应用场景:1.按照概念,直接给实体取别名,让代码书写更加简单,比如—在学生结构体S中又套了一个T结构体,T中有一个整形常量a,想要引用a,就可以给其取一个原创 2020-08-30 00:12:39 · 210 阅读 · 0 评论 -
C++函数重载
函数重载知识点复习函数重载的概念:在相同的作用域,函数名字相同,参数列表必要不同,这个不同体现在:参数的类型或参数的额个数或类型的次序,注意:与函数返回值类型是否相同无关函数重载的调用原理:1.在编译阶段,编译器会对实参的类型 进行推演,根据推演的结果选择合适的函数进行调用2.如果在工程中找到对应类型的重载函数,则直接调用。3.如果没找到,编译器会尝试进行隐式类型转化,如果隐式类型转化后有合适的函数调用,则直接调用,否则,编译失败。函数重载的实现原理:主要是取决于编译器对函数名的修饰规则。1.原创 2020-08-30 00:05:31 · 147 阅读 · 0 评论