dynamic_cast.cc

来自「做为SD0609的一员,我扎实的基础是如何打出来的,来看看我那时连猴子选大王都不」· CC 代码 · 共 45 行

CC
45
字号
#include <iostream>using namespace std;//enum TYPE { HORSE, PEGASUS };class Horse{public:	virtual void Gallop(){ cout << "Galloping...\n"; }private:	int itsAge;};class Pegasus : public Horse{public:	virtual void Fly() {cout<<"I can fly! I can fly! I can fly!\n";}};const int NumberHorses = 5;int main(){	Horse* Ranch[NumberHorses];	Horse* pHorse;	int choice,i;	for (i=0; i<NumberHorses; i++)	{		cout << "(1)Horse (2)Pegasus: ";		cin >> choice;		if (choice == 2)			pHorse = new Pegasus;		else			pHorse = new Horse;		Ranch[i] = pHorse;	}	cout << "\n";	for (i=0; i<NumberHorses; i++)	{		Pegasus *pPeg = dynamic_cast< Pegasus *> (Ranch[i]);  //down cast		if (pPeg)			pPeg->Fly();		else			cout << "Just a horse\n";		delete Ranch[i];	}	return 0;}

⌨️ 快捷键说明

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