C++语言基础
文章平均质量分 80
这里是个人学习C++语言期间,对C++的语言学习的记录和总结
Yair_
这个作者很懒,什么都没留下…
展开
-
二叉搜索树(Binary Search Tree)
K _key;原创 2024-05-23 14:28:11 · 292 阅读 · 0 评论 -
多态
1、必须通过基类的指针或者引用调用虚函数2、子类必须对基类的虚函数进行重写概念对比重载1、两个函数在同一作用域2、函数名相同;参数有三不同(顺序不同or类型不同or数量不同)重写(覆盖)1、两个函数分别在基类和子列的作用域2、函数名/参数/返回值都必须相同(协变例外)3、两个函数必须是虚函数重定义(隐藏)1、两个函数分别在基类和子列的作用域2、函数名相同3、基类和子类的两个同名函数不是构成重写就是重定义。原创 2024-05-19 22:29:30 · 1117 阅读 · 0 评论 -
继承
public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象组合是一种has-a的关系。假设B组合了A,每个B对象都有一个A对象。继承是一种白箱复用,父类对于子类基本是透明的,但是它一定程度破坏父类封装组合是一种黑箱复用,A对B是不透明的,A保持着它的封装组合的类耦合度更低,继承的类是一种高耦合面试题:使用继承还是组合呢?答:不能一概而论,根据使用场景,符合is-a就使用继承,符合has-a就使用组合,都符合就优先使用组合。原创 2024-05-17 19:15:28 · 814 阅读 · 0 评论 -
模板
在C语言中,想要实现多种类型的变量交换,需要用户定义需要实现交换的类型的函数。用户自定义一个栈的数据结构,只能用于一种类型的使用,如果想要在一个程序中定义多种类型的栈,C语言是办不到的。那么在C++中就引入了模板。原创 2024-05-03 15:14:09 · 874 阅读 · 0 评论 -
内存管理
int main()// malloc和new最大区别就是new会调用构造函数,free和delete的最大区别就是delete会调用析构函数。// p1是一个整型指针,存储在栈区,p1存的内容是一个指针,该指针指向在堆区开辟的内容。free(p1);delete p2;return 0;原创 2024-05-03 14:24:59 · 739 阅读 · 0 评论 -
类和对象
1、声明和定义全部放在类体中(注意:成员函数在类中定义,编译器可能会当初。原创 2024-04-25 17:55:59 · 390 阅读 · 0 评论 -
内联函数、auto关键字、范围for、nullptr
将一个函数指定为内联函数,通常就是将它在每个调用点上“内联地”展开。这样就没有函数调用建立栈帧的开销,可以提升程序运行的效率。一般来说,内联机制用于优化规模较小(即函数不是很长,没有具体的说法,取决于编译器内部的实现)、流程直接、频繁调用的函数。inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率。原创 2024-04-24 13:42:04 · 229 阅读 · 0 评论 -
缺省函数,函数重载,引用
缺省函数又分为全缺省函数和半缺省函数。原创 2024-04-02 13:21:08 · 1056 阅读 · 1 评论 -
内存的四区
内存分为四个区,分别是:代码区、全局区、栈区、堆区。一个程序在运行前分为代码区和全局区,这个时候栈区和堆区还没有创建。原创 2024-04-01 22:50:37 · 166 阅读 · 0 评论