![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
夜风里唱
这个作者很懒,什么都没留下…
展开
-
C++:什么情况下函数应该声明为纯虚函数
这是因为当删除一个指向派生类的基类指针时,会首先调用派生类的析构函数,然后调用基类的析构函数。因此,即使析构函数是纯虚函数,也需要在基类中提供一个实现(可以是空的)。:当你希望定义一个基类,该基类不能被实例化,只能作为其他类的基类时,你应该在基类中声明至少一个纯虚函数。这样的基类被称为抽象基类。纯虚函数通过在函数声明后添加 “= 0” 来定义,表示该函数在基类中没有实现,派生类必须提供实现。:如果你希望所有派生类都实现某个特定功能,而该功能在基类中没有意义或无法提供通用实现,你应该将该功能声明为纯虚函数。原创 2024-03-16 00:07:20 · 434 阅读 · 0 评论 -
C++:基类中的函数什么情况下声明为虚函数
如果你正在设计一个类层次结构,并希望它在未来是可扩展的,即使现在某些函数在基类中没有实际的实现或只提供了默认实现,也应该考虑将它们声明为虚函数。虚函数会带来一些开销,包括在对象中添加虚函数表指针,以及通过虚函数表进行动态分派的时间开销。另外,要注意的是,构造函数不能被声明为虚函数,因为虚函数机制依赖于对象已经存在并包含了虚函数表指针,而构造函数正是在对象创建过程中被调用的。:如果你预计派生类可能需要提供自己的实现,或者改变基类函数的行为,那么基类中的该函数应该被声明为虚函数。原创 2024-03-16 00:00:20 · 460 阅读 · 0 评论 -
C++接口的含义
看以下代码:```cpp#include <iostream>#include <stdlib.h>using namespace std;class Interface{public: Interface() {} virtual ~Interface() {} virtual void Test() = 0;};class TT :public Interface{public: TT() {} ~TT() {} virtual void T原创 2021-09-06 21:02:29 · 1118 阅读 · 3 评论