C++纯虚函数的程序举例

C++纯虚函数的程序举例,第1张

基类:

class A

{

public:

A()

void f1()

virtual void f2()

virtual void f3()=0

virtual ~A()

}

子类:

class B : public A

{

public:

B()

void f1()

void f2()

void f3()

virtual ~B()

}

函数:

int main(int argc, char* argv[])

{

A *m_j=new B()

m_j->f1()

m_j->f2()

m_j->f3()

delete m_j

return 0

}

f1()是一个普通的重载.

调用m_j->f1()会去调用A类中的f1(),它是在我们写好代码的时候就会定好的.

也就是根据它是由A类定义的,这样就调用这个类的函数.

f2()是虚函数.

调用m_j->f2()会调用m_j中到底保存的对象中,对应的这个函数.这是由于new的B对象.

f3()与f2()一样,只是在基类中不需要写函数实现.

虚函数是C++语言实现动态多态性的手段。系统自动根据对象类型(而不是专门设一个类型域)在程序运行时确定它应调用的函数版本,在编译时不会确定一个虚函数的调用对应于哪个函数版本。

适合使用虚函数的例子:

形状类Shape可以派生出圆Circle、三角形Triangle、矩形Rectangle、正方形Square等等。每个类都有一个成员函数Draw,表示在屏幕上画出自己的形状。使用者使用Shape*调用Draw,那么要使画出的形状都正确,必须根据对象类型来确定使用哪个Draw来画。将Draw在Shape中定义为虚函数,并在每个派生类中重新定义该函数,那么当程序运行时,系统自动调用合适的Draw函数版本。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12076498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存