对于C++中的虚函数,想必大家都不陌生,但是对于初学C++的人来说,却不知虚函数的设计目的是什么,而对于C++还不太熟练的人,虽然知道虚函数的设计目的,却不知其实现机制,当你明白了一个事物的原理,用起来不也就得心应手了吗?所以,我就从这两个方面来解析虚函数。这一篇先谈谈虚函数的设计目的。
接下来说说虚函数的设计目的,先看一段代码吧,在实践中找出问题,然后再解决问题,这是一个不错的学习方法:
#include<iostream>
using namespace std;
//形状类
class CShape
{
public:
CShape(){}
~CShape(){}
//打印面积
virtual void PrintArea() const
{
cout<<"CShape area!"<<endl;
}
};
//矩形类
class CRectangle:public CShape
{
public:
CRectangle(){}
~CRectangle(){}
//打印面积
void PrintArea() const
{
cout<<"CRectangle area!"<<endl;
}
};
//三角形类
class CTriangle:public CShape
{
public:
CTriangle(){}
~CTriangle(){}
//打印面积
void PrintArea() const
{
cout<<"CTriangle area!"<<endl;
}
};
//圆形类
class CCircle:public CShape
{
public:
CCircle(){}
~CCircle(){}
//打印面积
void PrintArea() const
{
cout<<"CCircle area!"<<endl;
}
};
int main()
{
//定义各类对象
CShape shape;
CRectangle rect;
CTriangle tr

本文探讨C++中虚函数的设计目的,通过实例解释静态推导导致的问题,并展示如何利用虚函数实现运行时多态,避免代码冗余。下文将介绍虚函数的内部实现机制。
最低0.47元/天 解锁文章
1200

被折叠的 条评论
为什么被折叠?



