小编L.G*_*L.G的帖子

C++在循环中使用switch时的输出相同

我已经尝试使以下测试程序工作2天,但它不起作用.它基于几个头文件完全正常工作,因为我通过另一个测试程序检查它们.它有头文件,称为Area,Circle,Ring,Rectangle和Square.我还定义了函数randcolor和randsize; 我一遍又一遍地检查每一个,但它在while循环中第二次尝试后产生相同的ouptut:

int main()
{
  srand(time(NULL));
  Area *list[20];
  int m;
  Area *c;
  int j = 0;

  while (j < 20) {

    m = rand() % 4;
    cout << m << endl;

    switch (m) {
      case 0: {
        Circle a(randcolor(), randsize());
        c = &a;
        break; 
      }
      case 1: {
        Ring r(randcolor(), randsize(), randsize());
        c = &r;
        break;
      }
      case 2: {
        Rectangle re(randcolor(), randsize(), randsize());
        c = &re;
        break;
      }
      case 3: {
        Square sq(randcolor(), randsize());
        c = &sq;
        break;
      } …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
215
查看次数

标签 统计

c++ ×1