📄 18-12.txt
字号:
/* 范例:18-12 */
#include <iostream.h>
class Shape /* 画形状类,在多态的应用上提供单一(统一)接口 */
{
public:
virtual void Draw()=0; /* #1 画任意形状 */
};
class Circlec:public Shape /* 画圆形类 */
{
public:
void Draw() /* 画圆形 */
{
cout <<"画圆形" <<endl;
}
};
class Square:public Shape /* 画方形类 */
{
public:
void Draw() /* 画方形 */
{
cout <<"画方形" <<endl;
}
};
class Star:public Shape /* 画星形类 */
{
public:
void Draw() /* 画星形 */
{
cout <<"画星形" <<endl;
}
};
class Triangle:public Shape /* 画三角形类 */
{
public:
void Draw() /* 画三角形 */
{
cout <<"画三角形" <<endl;
}
};
void main(void)
{
Shape *cShape; // #2.1
cout <<"请输入要画的形状(1)圆形(2)方形(3)星形(4)三角形...:";
int num;
cin >>num;
while(num<1 || num>4) // #3
{
cout << "请重新输入(1-4):";
cin >> num;
}
switch (num)
{
case 1:
cShape= new Circlec; // #2.2
break;
case 2:
cShape= new Square;
break;
case 3:
cShape= new Star;
break;
case 4:
cShape= new Triangle;
}
cShape->Draw(); /* 调用实际对应的虚拟成员函数 */
delete cShape;
getchar();
}
程序执行结果:
请输入要画的形状(1)圆形(2)方形(3)星形(4)三角形...:3
画星形
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -