关于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