方法定义中的变量名必须与C++中的声明名相同吗?

0 c++ class declaration definition language-lawyer

现在,我并不是说我认为这可以接近正确的编码实践(假设它甚至可能); 这个问题源于凌晨2点的错误:假设类定义类似于以下内容:

class myClass
{
public:
    void myMethod(const int & name);
}
Run Code Online (Sandbox Code Playgroud)

和定义:

void myClass::myMethod(const int & altName)
{
    //manipulate altName
}
Run Code Online (Sandbox Code Playgroud)

请注意,声明和定义的参数都是const int&类型,唯一的区别是变量名称.我知道这不会(在Visual Studio 2012中)抛出编译器错误或警告,但是在运行程序时是否会导致错误?

谢谢!

jua*_*nza 5

不.你甚至不需要在函数声明中使用变量名.他们的目的是文件.

显然,这可以通过以下方式进行检查:

void foo(int); // or void foo(int bar);

int main()
{
  foo(42);
}

#include <iostream>
void foo(int n)
{
  std::cout << n << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

一般来说,我认为没有理由使用不同的名称,并且在声明中不使用名称而不丢失信息的情况很少.