构造函数为什么不能为虚函数

来源:互联网 发布:朝鲜怎样知乎 编辑:程序博客网 时间:2024/05/30 22:49

  虚函数采用一种虚调用的方法。虚调用是一种可以在只有部分信息的情况下工作的机制,特别允许我们调用一个只知道接口而不知道其准确对象类型的函数。但是如果要创建一个对象,则必须要知道对象的准确类型,因此构造函数不能为虚。

 

  虚函数既然那么有用,我们是否可以把每个函数都声明为虚函数?

  不行,这是因为虚函数是要有代价的:由于每个虚函数的对象都必须维护一个V表,因此在使用虚函数的时候都会产生一个系统开销。如果仅是一个很小的类,且不想派生其他的类,则无需是虚函数。

原创粉丝点击