VS +qt C++ 编写case语句出现初始化操作由”case“标签跳过问题

在使用VS+qt C++编写代码时遇到switch语句中case标签跳过初始化操作的问题,错误源于未使用大括号包围初始化代码。通过将初始化部分用大括号括起来即可修复此问题。

VS +qt C++ 编写case语句出现初始化操作由”case“标签跳过问题

最近在编写代码时用到switch语句时出现“line1”的初始化操作由“case”标签跳过问题。

 switch (type)
                {
                
                case 1:
                
                    xRegLine* line1 = static_cast<xRegLine*>(entities[i]);             
                    qDebug() << line1->getData().startpoint.x;
                    qDebug() << line1->getData().startpoint.y;
                    qDebug() << line1->getData().endpoint.x;
                    qDebug() << line1->getData().endpoint.y;
                    qDebug() << line1->getData().regHeight;
                
                    break;       /**< Line */
                case 2:
                
                    xCircle* cirle = static_cast<xCircle*>(entities[i]);
                    qDebug() << cirle->getData().radius;
                    qDebug() << cirle->getData().center.x;
                    qDebug() << cirle->getData().center.y; 
                
                    break;
                   }

在这里插入图片描述
上述的代码就会出现图片中的错误,这是因为初始化的时候没有用大括号包含起来,就会报该错误,解决办法为:

 switch (type)
                {
                
                case 1:
                {
                    xRegLine* line1 = static_cast<xRegLine*>(entities[i]);             
                    qDebug() << line1->getData().startpoint.x;
                    qDebug() << line1->getData().startpoint.y;
                    qDebug() << line1->getData().endpoint.x;
                    qDebug() << line1->getData().endpoint.y;
                    qDebug() << line1->getData().regHeight;
                }
                    break;       /**< Line */
                case 2:
                {
                    xCircle* cirle = static_cast<xCircle*>(entities[i]);
                    qDebug() << cirle->getData().radius;
                    qDebug() << cirle->getData().center.x;
                    qDebug() << cirle->getData().center.y; 
                }
                    break;
               }

只需要将初始化代码用大括号包含起来问题就迎刃而解了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值