【发布时间】:2011-09-16 02:47:54
【问题描述】:
我正在尝试像这样声明一个变量:
switch(foo){
case 1:
MyClass myObject();
break;
case 2:
MyClass2 myObject();
break;
case 3:
MyClass3 myObject();
break;
}
但是在编译这个的时候,编译器会返回这些错误:
- 跨过“MyClass myObject”的初始化
- 冲突声明“MyClass2 myObject”
- “myObject”之前的声明为“MyClass myObject”
有什么办法解决这个问题吗?
【问题讨论】:
-
为什么要声明同名的对象?之后你将如何使用它们?似乎您需要将程序分成三种情况来以不同方式处理每个 myObject ——因此您似乎不需要为每个情况使用相同的名称。
-
等等,我有没有听到有人说“抽象工厂模式”?
标签: c++ variables object initialization