virtual函数

为什么内联函数,构造函数,静态成员函数不能为virtual函数?

  • 内联函数:在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾
  • 构造函数:用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。
  • 静态成员函数:属于一个类而非某一对象,没有this指针,它无法进行对象的判别
  • inlinevirtual不会同时起作用。带virtual的函数在不需要动态绑定调用的时候,就可以inline

猜你喜欢

转载自blog.csdn.net/B_Nemo/article/details/80574364