- 博客(23)
- 收藏
- 关注
原创 类中的单参数隐式类型转换和c++动态内存空间开辟
在开辟空间时new会调用operator new,operator new就是调用malloc,如果申请失败抛异常,之后new调用构造函数构造这些变量,如果申请的不是对象所需空间,new就只是开辟空间并初始化。比如开辟对象数组,调用delete就会出错,因为开辟的地址前面还有10字节没有释放,这是用来存有多少个对象,方便析构。c++引入了类,类在创建时会自动调用构造函数,malloc只能开辟空间,而new不仅能开空间还能调用构造函数。这是给已经在堆开辟好空间但没有构造的对象或对象数组构造。
2023-08-22 21:43:03
88
原创 类和对象【下】
2.初始化列表定义成员变量的顺序是按成员变量声明时的顺序定义的,声明时给的缺省值就是在初始化列表中去初始化。1.声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;1.初始化列表是定义成员变量的地方,在调用构造函数时自动初始化列表,可以自己写初始化列表,static修饰的成员函数,称之为静态成员函数。static成员都在静态区,但属于类域,访问可以通过类的类型。2.定义时在类外定义,初始化列表定义成员变量属于对象。1.友元类的成员可以访问那个类的所有成员。
2023-08-19 23:28:03
79
原创 类和对象【上】
c是面向过程的语言c++则是既可以面向过程,因为c++兼容c语言,并且也可以面向对象,通过对象之间的关系完成任务,c++引入了类这个概念提示:以下是本篇文章正文内容,下面案例可供参考构造函数和析构函数主要是一些细节比较多,但掌握了后会发现使用c++比c语言更加的简便。
2023-07-24 14:14:04
58
原创 数据结构||二叉树的实现
通过层序遍历,但是把null也入队列,如果出栈的那个元素是null,那就进入下一个循环,如果出栈遇到不是null的元素,那就不是完全二叉树。因为二叉树层序遍历是逐层递进,队列更符合数据储存的方式,把第一个队列第一个节点出队列,就把相应的子节点入队列,队列没有数据遍历完。后序遍历销毁节点,这种遍历会从叶节点一直返回溯到第一个根节点。这里采用的是前序遍历,节点为空‘#’代替,字符串生成二叉树。如果节点为空,就返回空,不是空就加1再向下去递归。
2023-04-23 00:16:27
75
原创 对树的理解
除了最后一层,其余必须都是满节点,并且这些节点度都是2,最后一层节点必须是从左到右连续。每一层节点存满,除了最后一层是度为0的节点,其余都是度2是的节点。完全二叉树度为0的节点比度为2的节点大一个。满二叉树有k层,那么他2^k-1个节点。完全二叉树度为1的节点只有1个或0个。一个节点的度就是有几个子节点。
2023-04-05 17:29:48
63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人