Joh*_*hon 0 c++ cpp-core-guidelines
我是 C++ 新手,我正在阅读核心指南,我发现了这一点:
P.1:直接用代码表达想法
在这里,它说使用类似的东西Month month() const;而不是int month();
所以我有两个问题,为什么函数末尾有一个 const ,它有什么作用?月份是如何定义的?你能用任何名称而不是 int、double、float 等名称来声明新函数吗?
提前致谢
该指南的要点就是它所说的:将界面背后的想法放在代码本身中。
如果您有某种日期类型,并且它有一个成员函数int month();,它表达了您可以从日期中检索月份的想法。据推测,返回的int值代表该日期中存储的一年中的月份。
但是...它如何代表月份?它是一个整数。一月是否被指定为整数 0,正如长期程序员(大多数语言)所期望的那样?或者也许它被赋予整数 1,因为这就是日期的实际书写方式?代码本身对此没有任何说明;您必须查看该函数的文档才能找到答案。因此,如果您看到if(date.month() == 1),您不知道代码是否在询问现在是一月还是二月。
另一种方法Month month() const;是返回类型Month。现在,该类型是什么尚未指定。无论是什么,该类型都可以明确“January”所代表的值。例如:
enum class Month { January, February, ...};
Run Code Online (Sandbox Code Playgroud)
“一月”是如何编码的?通过枚举值Month::January。因此,如果您看到测试if(data.month() == Month::January),那么就很清楚它在说什么。它不仅不含糊,而且读起来几乎和英语一模一样:is the Month of the date the Month of January。
这就是在代码中表达一个想法的含义:整个想法都由代码明确地表达出来。让代码说明它在做什么,而不是说明它是如何做的。
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |