请问6-6中为什么weekday打印出来的Tuesday,而是1呢?

来源:7-6 自定义类型--枚举

慕仰5073186

2020-07-12

请问6-6中为什么weekday打印出来的Tuesday,而是1呢?

写回答

1回答

quickzhao

2020-07-12

第一个值是0,第二个值是1。

0
3
易萧
回复
慕仰5073186
Tuesday相当于是一个常量名,C++并没有反射机制,所以翻译成汇编的时候你会看到,你根本找不到变量名相关的字符串,经过编译后并不会保存这样一个名字,所以程序不会认识这样一个变量,也更不会打印出Tuesday这样一个名字,你打印Tuesday,就如同打印一个const int a = 4一样,它不会打印出a。程序中所有的标识符,都是为了程序员更好地阅读和使用,如果你希望打印出Tuesday,那你或许应该自己自定义并加载一个单例的全局表,将其保存为字符串,并对所有使用它的场景进行你所希望的重载,比如Java中打印对象时,就会去调用toString,你可以写自己的逻辑。
2022-08-09
共3条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程