LInux C++学习day10 多态



4 纯虚函数、抽象类和纯抽象类
1)纯虚函数
virtual 返回类型 函数名(形参表) = 0;
2)抽象类
如果类中包含了纯虚函数,那么该类就是抽象类
注:抽象类不允许创建对象
3)纯抽象类
如果类中所有成员函数都是纯虚函数,那么该类就是纯抽象类.

5 多态语法原理:多态语法通过虚函数表和动态绑定来实现的//了解
1)虚函数表会增加内存的开销
2)动态绑定的过程增加时间的开销
3)虚函数不能被内联优化
注:如果实际开发中没有多态的语法要求,最好不要使用虚函数

6 虚析构函数
1)基类的析构函数不能自动调用子类的析构函数,所以对一个指向子类对象的基类指针使用delete操作符,实际被调用的仅是基类的析构函数,子类的析构函数执行不到,有内存泄漏的风险。
2)可以将基类的析构函数声明为虚函数,那么这时子类的析构函数就也是虚函数,并且可以对基类的虚函数形成有效的覆盖,也可以表现多态的语法特性;这时再delete一个指向子对象的基类指针,实际被执行的将是子类的析构函数,子类的析构函数在执行结束后总会自动调用基类的析构函数,从而避免内存泄漏。

ctags -R * //会生成tags文件
ctrl+] //跳转到光标所在函数的定义位置
ctrl+o //跳转回当前位置

猜你喜欢

转载自blog.csdn.net/weixin_43789711/article/details/90113588