构造函数里面调用虚函数会报错么
发布网友
发布时间:2022-05-17 09:22
我来回答
共1个回答
热心网友
时间:2023-10-17 04:37
调用当然是没有问题的,但是获得的是你想要的结果吗?
首先我们回顾下C++对象模型里面的构造顺序,在构造一个子类对象的时候,首先会构造它的基类,如果有多层继承关系,实际上会从最顶层的基类逐层往下构造(虚继承、多重继承这里不讨论),如果是按照上面的情形进行输出的话,那就是说在构造Base的时候,也就是在Base的构造函数中调用Fuction的时候,调用了子类A的Fuction,而实际上A还没有开始构造,这样函数的行为就是完全不可预测的,因此显然不是这样。