关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法

关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法

  • 说明(废话)
  • 问题解决方案
    • 问题1 case中不能定义变量
    • 多态函数动态传绑定的问题
  • 总结

说明(废话)

用了这么多年的c++,有些语法上的问题真的让人很难办,有的问题出现的让人很**
我先说明,我使用的是vs2019,默认是c++14
如果您没有问题,也无须纠结,可能c++版本不同,就请当个笑话看看…

问题解决方案

问题1 case中不能定义变量

好吧,其实这也算是个问题,毕竟我需要把变量定义在Switch外面,感觉很麻烦不说,有时候我就是想要把变量定义在case里面。

switch (value) {
case 1:
int x = 10; // 不合法,不能在这里定义变量
break;
// …
}

应该这样:
大括号括起来是可以定义变量的!

switch (value)
{
case 1:
{
int x = 10;
// 使用x…
break;
}
// …
}
但是咧,又会引起新的问题…

多态函数动态传绑定的问题

class people;
class man:public people;
class woman:public people;
这里只是为了说明问题,并不能保证语法完整正确哈。

people *p=null;
switch (value)
{
case 1: {
p = new man;//这是没有问题
auto man = new man;//这样是有问题的
p=man;//这样传递不行
}
}

总结

就是为了避免在case中定义子类实例,再传递出去,这样可能会引起莫名其妙的问题。

希望对大家有帮助!

编辑:myhappyandy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值