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

相关推荐
会员源码网1 小时前
构造函数抛出异常:C++对象部分初始化的陷阱与应对策略
c++
孔明click332 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·sa-token·开源·springboot·登录·权限认证
省长2 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源
xlp666hub3 小时前
Leetcode第二题:用 C++ 解决字母异位词分组
c++·leetcode
不想写代码的星星4 小时前
static 关键字:从 C 到 C++,一篇文章彻底搞懂它的“七十二变”
c++
草梅友仁6 小时前
OpenClaw AI 助手实测与墨梅博客更新 | 2026 年第 10 周草梅周报
开源·github·ai编程
冬奇Lab16 小时前
一天一个开源项目(第44篇):GitNexus - 零服务器的代码智能引擎,为 AI Agent 构建代码库知识图谱
人工智能·开源·资讯
冬奇Lab17 小时前
OpenClaw 深度解析(七):安全模型与沙盒
人工智能·开源
xlp666hub20 小时前
Leetcode第一题:用C++解决两数之和问题
c++·leetcode
不想写代码的星星1 天前
C++继承、组合、聚合:选错了是屎山,选对了是神器
c++