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 + -
显示快捷键?