C++中的虚函数随便说说
时间:2010-10-23 来源:老陈
那类又为什么要加个虚指针呢?一个类的所有对象不也是使用一样的一套虚函数吗?给每个对象都加上一个指针不是也浪费空间吗?这个时候我们当然想起了多态,一般使用多态的情形是这样的:
S* s=new S;F* f=s;//假设S继承自F
f.func();//假设func为虚函数
一个赋值, 因为对象中保存了虚指针,这个赋值同时也使f的虚指针变成了s的虚指针,这时,我们再调用f的虚函数自然是s中的函数。这样说来,我们可以把虚指针理解为一个隐藏的成员变量,而这个变量的类型是指向一个函数数组(虚表)的指针。当然,真正实现多态还要考虑很多东西。
相关阅读 更多 +