c++关键字 哪些函数能被声明为虚函数?为什么?
浏览量:2436
时间:2021-03-11 10:12:07
作者:admin
哪些函数能被声明为虚函数?为什么?
非静态成员函数可以声明为虚拟函数。
因为它是对象的一部分
1。虚函数的概念
虚函数是用virtual关键字声明的基类函数。如果一个函数在基类中被指定为virtual,并且在派生类中有该函数的另一个定义,编译器将知道我们不希望静态连接该函数。我们真正需要的是根据调用函数的对象的类型来选择在程序的特定位置调用哪个函数。
2. Define
语法:virtual function return type function name(parameter table){function body}
虚拟函数必须是基类的非静态成员函数,其访问权限可以是private、protected或public。虚拟函数的一般形式在基类的类定义中定义:
类基类名称{
…
要在派生类中重载的虚拟返回值类型函数名称(参数列表);
虚函数的定义?
函数不能同时是虚拟函数和内联函数。严格地说,即使可以创建内联虚拟函数,或者将虚拟函数声明为内联函数,编译器也不会内联展开此类函数,而是将其视为普通函数。编译器拒绝展开非虚拟内联函数。C编译器通常首先报告一个错误:“inline interrupt-function too large”。如果内联函数调用自身,或将其地址传递到某处,则编译器必须生成一个普通(内联)函数。对于内联虚拟函数,编译器将它们视为普通虚拟函数。最好不要在应用程序中使用内联虚拟函数,因为它们几乎从未扩展过。实际上,开发人员通常在类声明中放置一个简短的虚函数。这样做的目的不是将函数扩展为内联函数,而是使程序更加方便和可读。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。