09_02.cpp

来自「一些C++的课件和实验源代码」· C++ 代码 · 共 50 行

CPP
50
字号
// 09_02.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

class A{
public:
	void f1(){ cout << "A::f1()" << endl;}
	void f2(){ cout << "A::f2()" << endl;}
	virtual void f3(){ cout << "A::f3()" << endl;}
	virtual void f4(){ cout << "A::f4()" << endl;}
};

class B: public A{
public:
	void f1(){ cout << "B::f1()" << endl;}
	void f2(){ cout << "B::f2()" << endl;}
	void f3(){ cout << "B::f3()" << endl;}
	void f4(){ cout << "B::f4()" << endl;}
};

int main(int argc, char* argv[])
{
	A *pa = new A;
	B *pb = (B*)pa;		// 向下映射

	pa->f1();	pa->f2();	pa->f3();	pa->f4();
	cout << endl;
	
	pb->f1();	pb->f2();	pb->f3();	pb->f4();
	cout << endl;
	
	delete pb;
	pb = new B;
	pa = pb;			// 向上映射

	pa->f1();	pa->f2();	pa->f3();	pa->f4();
	cout << endl;
	
	pb->f1();	pb->f2();	pb->f3();	pb->f4();

	delete pb;
	pa = pb = NULL;

	getch();
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?