构造函数不能为虚函数
1.从虚函数的调用机制上看,如果构造函数为虚函数的话,那函数地址将存储在虚表,将由虚表指针来访问续表,而虚表指针是类对象的第一个数据成员,类对象又要由构造函数产生,所以构造函数不能是虚函数。
2.从构造函数的作用来看,构造函数的作用是提供初始化,在对象生命期只执行一次,不是对象的动态行为,也没有必要成为虚函数。
1.从虚函数的调用机制上看,如果构造函数为虚函数的话,那函数地址将存储在虚表,将由虚表指针来访问续表,而虚表指针是类对象的第一个数据成员,类对象又要由构造函数产生,所以构造函数不能是虚函数。
2.从构造函数的作用来看,构造函数的作用是提供初始化,在对象生命期只执行一次,不是对象的动态行为,也没有必要成为虚函数。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步