c++ - 在 C++ 中,如何将当前函数的所有参数传递给另一个函数?
问题描述
c++ 中是否有一个表达式允许我将所有当前函数的参数按顺序传递给另一个函数?请参见下面的示例。
int bar(int a, char* b, double c)
{
}
int foo(int a, char* b, double c)
{
bar({what goes here?}); // Equivalent to bar(a, b, c);
}
解决方案
不久前我读了一本关于干净代码的书,它提倡最多 2 个函数参数。3 只为情有可原,4 是滔天罪行。
如果你要经过a
,b
经常c
在一起,显然他们在一起意味着什么。因此,在这种情况下,本书建议制作一个结构来保存该信息:
struct Abc {
int a;
char *b;
double c;
};
int bar(Abc abc)
{
}
int foo(Abc abc)
{
bar(abc);
}
这样,您就不会因为更长、更具描述性的名称而惩罚自己,并且您可以为所有这三个值的含义添加另一个信息名称。