- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 AVL树(c++)
AVL树是最早被发明的自平衡二叉搜索树,以其发明者Adelson-Velsky和Landis的名字命名。在AVL树中,任何节点的两个子树的高度差最多为1,这种平衡性质保证了树的查找、插入和删除操作的时间复杂度都能保持在O(log n)。
2025-11-01 20:50:12
237
原创 二叉搜索树(C++)
二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值,它的左右子树也分别为二叉搜索树。
2025-10-03 19:52:08
894
原创 C++多态
本文主要介绍了C++中多态的概念、实现原理及相关技术细节。首先阐述了多态的定义,即不同继承关系的类对象调用同一函数产生不同行为,并详细说明了构成多态的两个必要条件。文章重点讲解了虚函数的基础知识,包括虚函数的重写规则、协变和析构函数重写等特殊情况。对于虚函数的实现原理,深入分析了虚函数表(虚表)的结构和工作机制,解释了派生类虚表的生成过程和多态的实现原理。。 此外,文章还介绍了抽象类和纯虚函数的概念,通过对比重载、覆盖和隐藏的区别,帮助读者深入理解多分析了C++11新增的关键字override和final的
2025-10-02 00:52:11
1086
原创 C++继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。虚基表中存的偏移量。虚拟继承可以解决菱形继承的二义性和数据冗余的问题。如上面的继承关系,在Student和Teacher的继承Person时使用虚拟继承,即可解决问题。菱形继承的问题:从下面的对象成员模型构造,可以看出菱形继承有数据冗余和二义性的问题。为了研究虚拟继承原理,我们给出了一个简化的菱形继承继承体系,再借助内存窗口观察对象成员的模型。
2025-09-29 22:09:06
914
原创 C++模板
函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。函数模板格式返回值类型 函数名(参数列表){}typename是用来定义模板参数关键字,也可以使用class。
2025-09-27 20:15:18
807
原创 C++类和对象
C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数,C++将结构体升级成了类。定义一个类:class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。类的实例化以及存储方式一个类的大小,实际就是该类中”成员变量”之和,当然要注意内存对齐。注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类的对象。结构体内存对
2025-09-27 00:28:50
858
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1