在switch-case中创建一个对象

Tyz*_*zak 2 c++ object switch-statement

我使用visual studi 2008.(c ++)

在我的开关案例中,我想创建一个对象,但我不能工作.

是不是,我不能在开关盒中创建一个对象?

如果这是对的,最好的解决方法是什么,

一个创建该对象的新方法?

编辑代码:

switch (causwahl){
case '1':
cAccount *oAccount = new cAccount (ID);

case '2' ....
Run Code Online (Sandbox Code Playgroud)

Pet*_*der 12

我不能肯定地说这么模糊的问题,但我猜你做的是这样的:

switch(foo)
{
case 1:
  MyObject bar;
  // ...
  break;

case 2:
  MyObject bar;
  // ...
  break;
}
Run Code Online (Sandbox Code Playgroud)

这是不允许的,因为每个case语句具有相同的范围.如果要使用相同的变量名,则需要提供更多范围:

switch(foo)
{
case 1:
  {
    MyObject bar;
    // ...
    break;
  }

case 2:
  {
    MyObject bar;
    // ...
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)