长安的花

当学问走过漫漫古道
凿刻入千窟,心也从愚昧中苏醒

0%

Hack cpp virtual functions

虚函数 virtual functions

被virtual修饰的成员函数,就是虚函数。

当使用指针或对基类的引用(引用派生类对象),可以为该对象调用虚函数。

虚函数只能借助于指针或者引用来达到多态的效果。

派生类相应的函数前可加可不加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
class A{
public:
virtual void foo(){
cout<<"A::foo()"<<endl;
}
};
class B:public A{
public:
void foo(){
cout<<"B::foo()"<<endl;
}
};
int main()
{
A *a = new B();
A b;
A &c=*a;

a->foo(); //输出 是: B::foo()
b.foo(); //输出 是: A::foo()
c.foo(); //输出 是: B::foo()

return 0;
}

纯虚函数 virtual 函数类型 函数名() = 0

纯虚函数是在基类中申明的虚函数,在基类中没有定义,但是要求任何派生类都要定义自己的实现方法
virtual void function()=0

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道