我希望通过引用返回到交换机内部的变量来返回,例如:
sometype & getbar();
void foo() {
switch ( {statement} ) {
case {statement}:
sometype & handle = getbar();
...
但我收到了编译错误:
标签跳过'标识符'的初始化 “默认”标签跳过“标识符”的初始化
看起来不可能这样做:
void foo() {
sometype & handle;
switch ( {statement} ) {
case {statement}:
handle = getbar();
...
因为引用变量需要初始化。
有没有办法保持switch语句?
答案 0 :(得分:5)
是的,有。将case语句的主体括在括号中,如下所示:
case {statement}:
{
sometype & handle = getbar();
...
}