发表评论

后才能评论

评论(2)

  • 文峯 普通 2022-04-21 7:46 下午

    1、构造一个对象的时候,必须知道对象的实际类型,而虚函数是在运行期间确定实际类型的。如果构造函数为虚函数,则在构造一个对象时,由于对象还未构造成功,编译器还无法知道对象的实际类型,是该类本身还是派生类。无法确定。

    2、虚函数的执行依赖于虚函数表,而虚函数表是在构造函数中初始化的,即初始化vptr,让它指向虚函数表。如果构造函数为虚函数,则在构造对象期间,虚函数表还没有被初始化,将无法进行。

  • mpweixin用户 普通 2022-03-09 5:15 下午

    因为创建一个对象时需要确定对象的类型,而虚函数是在运行时确定其类型的。