- 博客(5)
- 收藏
- 关注
原创 封装,继承,多态
1.三同,返回值(协变除外),函数名(析构函数会自动成destruction),参数列表(不考虑形参赋值)虚函数表:本质是一个虚函数数组,他们虽然指向的地址不一样但是殊途同归,最后都是子类的函数实现。抽象类型:只有一个虚函数接口,不能够实例化,所以子类中必须要实现函数。(决议区别:和当前类型没有关系,拿虚表去找)(函数重载的原理,函数修饰原则)指向谁调用谁的函数实现,虚函数是接口继承,不是实现继承。关注函数指针的定义,关注如何强制类型转换两个完全不搭边的类型(用int*过渡)2.基类必须加virtual。
2023-07-03 23:06:35
52
1
原创 封装,继承,多态
解决菱形继承代码冗余和二义性我们引入了:virtual中间有一个虚基表,D中调用的C中和B中的a都是同一个a;函数隐藏:即父类和子类函数名相同,先用自己定域类内的。切片:如果是父类指针指向子类,会进行切片操作;析构函数:析构函数调用有其顺序,不要自己去写。继承方式:就小原则(一般只用public);构造函数的调用:子类调子类,基类调基类。
2023-07-03 22:49:03
51
1
原创 封装,继承,多态
先看这个运算符需要几个参数,在作用域内会默认提供this指针在符号左边,所以如果需要this在右边,那么就需要将运算符重载函数写在类外面。:protected(在继承中考虑)、private(在class中默认)、public(在structure中默认);友元分两类,友元函数(破坏封装性可以用private),友元类(JAVA中多用):将class中区域类比成墙,外面的人看不见。(但是初始化列表中隐藏着构造顺序),如果不写,默认是。列一个大纲,及时回顾知识,并为复习做铺垫。(值传递,不分配内存),
2023-07-03 22:27:20
55
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人