为了说明这个问题,我们先从一个简单的例子:
在linux下用gcc编译后,打印的结果为0。可能有些同学会有疑问,运行结果怎么不是1呢?这里要说一下,虚函数是动态绑定的,即在运行时来确定;而默认构造参数,是在编译时就确定了,如果默认构造参数也需要在运行时确定,编译器就需要实现复杂的机制来实现,运行效率必然大打折扣,因此默认构造参数就在编译时就确定了。
为了说明这个问题,我们先从一个简单的例子:
在linux下用gcc编译后,打印的结果为0。可能有些同学会有疑问,运行结果怎么不是1呢?这里要说一下,虚函数是动态绑定的,即在运行时来确定;而默认构造参数,是在编译时就确定了,如果默认构造参数也需要在运行时确定,编译器就需要实现复杂的机制来实现,运行效率必然大打折扣,因此默认构造参数就在编译时就确定了。