1.在基类中用virtual关键字申明成员函数为虚函数
class CShape
{
public:
virtual void draw()=0;
};
2.在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重新定义函数体。
class CTriangle : public CShape
{
public:
void draw();
};
class CSquare : public CShape
{
public:
void draw();
};
3.定义一个指向基类对象的指针变量,并使它指向同一类族中需要调用该函数的对象。
4.通过该指针变量调用此虚函数,此时调用的就是指针变量指向的对象的同名函数。
void Draw(CShape &shape);
int main()
{
CSquare square;
CShape *p = &shape;
Draw(square);//调用的是square.draw()
p = &square
p->draw(); //调用的是square.draw()
return 0;
}
void Draw(CShape &shape)
{
shape.draw();
}
本文详细介绍了C++中虚函数的使用方法,包括如何在基类中声明虚函数,在派生类中重写虚函数,以及如何通过指向基类对象的指针来调用正确的虚函数实现。通过具体示例,读者可以深入了解虚函数机制及其作用。
187

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



