对象在switch语句中的作用域

时间:2014-10-29 17:17:33

标签: c++ pointers object switch-statement

我尝试制作一个程序,您可以在其中输入评论,查看评论和创建帐户。我把菜单作为一个开关声明。在大多数情况下,我需要一个“用户对象”,但它是在case1中创建的,它的范围仅在case1中。我使用了“用户指针”,所以我可以在其他情况下使用它。我有switch语句,所以它运行直到用户退出。当我在case1中添加指针并运行程序时它崩溃了。 “我的问题是,在case1中创建”用户对象“的另一种方法是所有其他情况都可以访问吗?

  User *uPointr = NULL;     


 int: selec;
 cout << " enter a selection: " ;

 do{
 switch(selec)
 {
  case 1: // creates  a user
   {
     string name;
     cout << " Enter you name ": ;
     cin >> name;

     User newUser();    // making an new user 
     addUsertoList(newUser);
     *uPointer = newUser();
      break;
   }

   case 2:
  {
    string message;
    count << " Enter message:;
    cin >> message;

    uPointer.addMessage(message);
     break; 

    }
   case 3:
   {
    UPointer->disPlayMessage();
    break;
    }
    case 4:
   {
    exit(0); 
   }

 }
 } While(1);

1 个答案:

答案 0 :(得分:0)

而是可以使用std :: list包含指向switch外部的User对象的指针。然后您可以在案例1中插入新用户(就像您正在执行addUsertoList(newUser)),在案例2,3中修改该用户......等等。