为什么会有虚析构函数,而没有虚构造函数?谢谢!
来源:百度知道 编辑:UC知道 时间:2024/06/08 11:42:56
如果是虚析构函数, 调用时,会根据对象类型动态决定调用的函数。
如果,~Base()是虚函数, a.~Base()时,对象已确定,可以调用相应的析构函数。
对于构造函数,对象类型还没有决定,无法确定要调用的函数。
所以,虚构造函数是没有意义的。
比如,Base a = new Base();
如果Base()是虚函数,它无法确定要调那个函数。
UC知道是一部内容开放、自由的互动网络百科全书
客观、专业、权威的知识性百科全书
来源:百度知道 编辑:UC知道 时间:2024/06/08 11:42:56
如果是虚析构函数, 调用时,会根据对象类型动态决定调用的函数。
如果,~Base()是虚函数, a.~Base()时,对象已确定,可以调用相应的析构函数。
对于构造函数,对象类型还没有决定,无法确定要调用的函数。
所以,虚构造函数是没有意义的。
比如,Base a = new Base();
如果Base()是虚函数,它无法确定要调那个函数。