⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18-12.txt

📁 《C/C++完美演绎》源代码
💻 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 + -