Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8621327
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: C/C++

2009-02-24 22:11:28

虚函数的提出其实和C++的多态有着莫大的关系,先看一个例子;

#include <iostream>
using namespace std;
class A
{
public:
    void print()
    //virtual void print()

    {
        cout<<"This is A"<<endl;
    }
};

class B:public A
{
public:
    void print(){cout<<"This is B"<<endl;}

};

int main(){

    A a;

    B b;

    a.print();
    b.print();

    A* p1=&a;

    A* p2=&b;

    p1->print();

    p2->print();

}

从结果可以看到:
This is A
This is B
This is A
This is A
将父类的print函数改为虚函数,也是将void print()改为virtual void print(),则结果就不同了:
This is A
This is B
This is A
This is B
阅读(920) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~