📄 c14-向下类型转换.txt
字号:
//----------------------------------------------------------
// 向上/向下类型转换-例
// 没有使用虚函数
//----------------------------------------------------------
//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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -