声明中的函数参数名称(最有可能驻留在头文件中)似乎被编译器完全忽略。允许使用声明版本 1 或 2 进行编译的原因是什么?
实施
void A::doStuff(int numElements, float* data)
{
//stuff
}
声明 - 版本 1
class A
{
public:
void doStuff(int numElements, float* data);
}
声明 - 版本 2
class A
{
public:
void doStuff(int, float*);
}
编译器只需要知道该方法需要什么样的参数。对于编译器来说,如何调用它们并不重要。
编译器需要知道参数类型有几个原因:
但是,我建议使用第一个标头版本。它可以帮助其他开发人员(和您自己)使用这些函数并了解哪些参数具有哪些含义。
参数名称不是函数签名的一部分。除非您使用它们,否则即使在函数实现中也不需要有名称。