不要在构造和析构函数中调用虚函数
构造函数中不能有虚函数的原因:
原因一:基类构造期间虚函数不会下降到派生类阶段,也就是本身我们声明一个派生类对象,它应该先去调用基类的构造,若此时基类构造里面有虚函数,则这个虚函数是基类的虚函数,而不是继而到派生类里的虚函数。(即:要求使用对象内部尚未初始化的成分。。。错误的)
原因二:在派生类构造的基类对象期间,对象类型是基类而不是派生类,派生类的专属成分并未被初始化。对象在派生类构造开始之前不会是一个派生类对象。
在构造和析构函数中不要用虚函数,因为这类函数调用不会下降至派生类。
也就是避免使用初期未成熟的派生类对象的未初始化成员变量。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步