您的位置:首页 > 移动开发 > IOS开发

多继承中的虚函数

2007-12-13 18:21 204 查看
// MutiDeriveOfVirtual.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <iostream>

#include <conio.h>

using namespace std;

class a

{

public:

 virtual void f()

 {

  cout<<"class a"<<endl;

 }

};

class b

{

public:

 void f()

 {

  cout<<"class b"<<endl;

 }

};

class ab:public a,public b  //多继承

{

public:

 void f()

 {

  cout<<"class ab"<<endl;

 }

};

int _tmain(int argc, _TCHAR* argv[])

{

 a obj1,*p1;

 b obj2,*p2;

 ab obj3;

 p1=&obj1;

 p1->f();

 p2=&obj2;

 p2->f();

 p1=&obj3;//p1声明为指向基类a对象的指针,且f在a中被定义为虚函数,所以调用由派生类ab改写的f

 p1->f();

 p2=&obj3;//p2声明为指向基类b对象的指针,但f在b中被定义为非虚函数,所以仍调用基类b的f

 p2->f();

 char c = getch();

 return 0;

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iostream class c