c14-

来自「C++面向对象课程设计课件」· 代码 · 共 50 行

TXT
50
字号
//----------------------------------------------------------
// 向上/向下类型转换-例
// 没有使用虚函数
//----------------------------------------------------------
//Shape.h文件
#ifndef SHAPEH
#define SHAPEH
#include <iostream.h>
class Shape
{
public:
	void Area() const;
};
class Rectangle:public Shape
{
public:
	Rectangle(int w,int h);
	void Area() const 
	{cout<<"Rectangle Area is="<<mWidth*mHeight<<endl;}
protected:
	int mWidth;
	int mHeight;
};
class Circle:public Shape
{
public:
	Circle(int r);
	void Area() const 
	{cout<<"Circle Area is="<<mRadius*mRadius*3.1415926<<endl;}
protected:
	int mRadius;
};
#endif


//其他部分cpp文件
void Show(Shape * ps)
{
	if (Rectangle * pr=dynamic_cast<Rectangle *>(ps))
	{
		pr->Area();
	}else	if (Circle * pc=dynamic_cast<Circle *>(ps))
	{
		pc->Area();
	}else
	{
	/....
	}
}

⌨️ 快捷键说明

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