【发布时间】:2018-01-26 22:56:46
【问题描述】:
int main() {
if(i = 0) {
myclass1 a = "Example1";
}
else {
myclass2 a = "Example2";
}
cout << a << endl;
}
我知道一种方法是在块外定义它,但如果在检查i 的条件之前我还没有确定a 的类型怎么办?
【问题讨论】:
-
可能是模板和/或 lambda 的?
-
i = 0是赋值,而不是比较。 -
myclass1和myclass2共享公共基类吗? -
将打印行移入 if 范围?我知道这是一个例子,但是如果用法很短,即使它们相同,也要复制它;而不是使用额外的库和许多杂乱的技巧。
-
在 stackoverflow 上的一个常见观察是:当提出一个“简单”的问题时,会提出一些非常复杂、棘手或优雅的解决方案。虽然这可能很有趣,很有教育意义,而且不一定是“错误的”,但我认为在很多情况下,远更适合问:您真正想要实现什么?乙>。这是必须首先回答的问题,然后才能首先将任何潜在解决方案视为“好”或“坏”。