【发布时间】:2017-03-09 14:49:38
【问题描述】:
给定一个具有不同函数(function1 和 function2)的头文件:共享相同默认参数的最佳做法是什么?
class MyClass {
public:
virtual ... function1(..., int param1 = 48, int param2 = getStuff(99)) = 0;
virtual ... function2(..., int param1 = 48, int param2 = getStuff(99)) = 0;
}
使用类似的东西
#define PARAM1 = 48
#define PARAM2 = getStuff(99)
似乎相当不方便。我对 C++ 相当陌生,所以我不知道在这种情况下最好的做法是什么。我应该改为在 MyClass 中创建一些私有常量吗?
【问题讨论】:
-
使用成员变量代替参数?
-
我认为使用定义没有任何问题。只要您给定义一个有意义的名称。例如NUMBER_OF_SECONDS_IN_A_DAY。
-
关于成员变量:这似乎是一种合理的方法,但是,我也有一些由我不想存储返回值但我想调用每个函数设置的默认参数调用函数的时间。
-
在 C++ 中,使用
const变量而不是#define。 -
使用 const 而不是 #define 将是 c++ 的“最佳实践”,否则你很高兴。
标签: c++ coding-style default-value