您的位置:首页 > 其它

整理的一些关于虚函数的使用方法和注意点

2010-08-28 17:44 513 查看
在基类用virtual声明成员函数为虚函数,在派生类中重新定义该虚函数,要求函数名、函数返回类型、函数参数个数和类型与基类的虚函数相同。如果在派生类中没有对基类的虚函数重新定义,则派生类直接简单的继承该虚函数。

有一种情况例外,在这种情况下派生类与基类的成员函数返回类型不同,但仍起虚函数的作用。即基类虚函数返回一个基类指针或基类引用,而子类的虚函数返回一个子类的指针或子类的引用。

在C++中,当一个成员函数定义为虚函数后,其派生类中的同名成员函数都自动为虚函数。

一个成员函数被声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具有相同参数(个数与类型)和函数返回值类型的同名函数。

静态成员函数不能是虚函数,因为静态成员函数不受限与某个对象。

inline函数不能是虚函数,因为inline函数是不能在运行中动态确定其位置的,即使虚函数在类的内部定义,编译时,仍将其视为非inline的。

使用虚函数,系统要有一定的空间开销。当一个类带有虚函数时,编译器会为该类构造一个虚函数表(virtual function table, vtable), 它是一个指针数组, 存放每个虚函数的入口地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐