我的函数中有一些参数接收并传递相同的值。我应该将所有参数变量命名为相同吗?
示例:
// assume numMonth = 12
// assume numYear = 2000
int promptMonth(); // returns numMonth
int promptYear(); // returns numYear
int daysInMonth(int numMonth, int numYear); // numMonth and numYear will always
int daysInYear(int numYear); // be sent to these.
bool isLeapYear(int numYear); // daysInYear() and daysInMonth() call
// this function and send it numYear
// (which would be 2000 in this case).
是否所有这些参数都被命名为相同,因为相同的值被传递给它们?
答案 0 :(得分:6)
同样,我假设你的意思是函数参数名numYear
。
是的,最好以有意义的方式命名变量,以指示传递的值的含义/目的。
这些变量是不同功能的一部分,因此范围仅限于那些功能。因此,如果您正在考虑这个问题,则不存在多个定义的问题。
答案 1 :(得分:4)
通常这种风格是个好主意。你绝对应该遵循它,但仍然存在滥用和误解的空间。
让我自己解释一下
int
都适合作为年份值。对于更复杂的情况,您应该考虑为输入变量使用特殊类型。 例如,考虑将部分整数更改为:
Month promptMonth();
Year promptYear();
int daysInMonth( Month m, Year y);
int daysInYear( Year y );
bool isLeapYear( Year );
你能看到现在不仅你不必使用复杂的变量名,而且你还可以进行特殊的打印和检查吗?
cout << "the current month is " << promptMonth();
可以输出
the current month is 'October'