- 博客(4)
- 收藏
- 关注
原创 C++学习笔记之多态
动态多态,在运行阶段确定函数地址,实现是在基类中编写虚函数,在子类中重写虚函数,调用时可以定义父类的指针或者引用,来指向子类对象,指向那个子类对象就调用那个子类的虚函数,这就是我们常说的实现父类指针或者引用指向子类对象。通常情况下多态中,父类是实现并没有什么意义,主要是调用子类重写的内容,因而实在编程中可以将虚函数写为纯虚函数,含有纯虚函数的类也被称为抽象类,抽象类无法实例化对象也必须在子类中重写抽象类的纯虚函数,否则子类也属于抽象类。多态是C++面向对象的三大特性(封装,继承,多态)之一。
2024-08-22 17:15:01
40
原创 C++学习笔记之继承
两个子类Base1、Base2继承了同一个父类Base0,又有一个类Son同时继承了这两个子类Base1、Base2,这种继承关系叫做菱形继承(钻石继承)。父类中所有的非静态成员属性都会被子类继承,编译器会隐藏父类中的私有成员属性,因此子类无法访问,实际上子类仍然继承了这一部分。菱形继承会出现一个问题,最底层的子类Son中会有两份最上层父类Base0的数据,通过虚继承的方式解决该问题。继承可以减少重复代码,继承后子类中成员包含两部分:自己增加的成员和继承的成员。子类中的成员属性和函数直接访问即可。
2024-08-21 17:33:15
445
原创 C++学习笔记之运算符重载
加法运算符重载有全局函数和局部函数两种实现方式,下面的代码重新编写了加法运算符函数重载加法运算符,将两个自定义类Person的的两个属性number1,number2相加,返回属性相加后的Person类。由于运算符只能实现一些内置数据类型的运算,而无法对自定义数据类型进行运算,对目前已有的运算符进行重新定义,以拓展其功能。这里只能使用全局函数重载,是因为如果使用局部函数重载,只能实现<<cout效果,而不能实现cout<<。重载递增运算符,自定义类Person++,++Person,可以实现类属性的递加。
2024-08-20 17:06:00
335
原创 C++学习笔记之友元
在类中使用friend关键字声明成员函数,使得友元成员函数可以访问该类中的保护和私有成员。在类中使用friend关键字中声明友元类,使友元类可以访问该类中的私有和保护成员。孤身打马南屏旧桥边过,恰逢山雨来时雾蒙蒙。1.全局函数做友元;3.成员函数做友元。
2024-08-19 17:08:40
253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人