引言
使用QT开发界面时公有继承了自己实现的相机类、并且由于界面程序稍微复杂了些,相机类中的一些函数需要重写,使用到了多态。
感慨:之前只知道继承、重写别人的类或者函数,没想到有一天终于想到了继承自己写的类,真的会简化编程啊~
并且这里承接上一篇
方法
- 基类的析构函数声明为虚函数——因为基类的指针指向派生类时,若基类的析构函数不声明为虚函数,在析构时只会调用基类的析构函数而不会调用派生类的虚构函数,从而产生内存泄露;
- 基类中的某些需要重写的函数声明为虚函数。
我的项目具体实现
- 相机类的析构函数声明为虚函数;
- 界面类公有继承相机类;
- 相机类中的SDK和相机的初始化函数声明为虚函数;原因在于在实际项目工程中,初始化函数中注册的回调函数与相机类中原本注册等的回调函数略微不同(详见上一篇回调函数)。因此在实际工程类中定义另一个回调函数并且在重写的初始化函数中注册该回调函数。
说明:不把回调函数作为虚函数的原因也很明确,因为回调函数不能是类的成员函数,倒不如直接重写一下类的成员函数,而回调函数重新定义一个来得痛快实用。
好久没有更新了,最近写了一些仅自己可见的毕业论文相关的内容,等忙完毕业再一一整理公开