2015-05-15 42 views
-3

我遇到问题。如何实现未命名参数

void setName(const string&); 

我该如何实现上面的代码?我需要写this.name = ...,但没有命名变量。只有&符号。

+4

是什么阻止你增加一个? – EdChum

+2

你只需在实现中给它一个名称:'void setName(const string&s){/ * .... * /}' –

+0

因为我有一个头文件,我不能改变它。 –

回答

6

您不需要在函数原型中包含显式参数名称。实际上,一些程序员故意忽略它们。

只有当你定义一个功能你需要提供一个参数名,才把如果你真的到该参数。

所以在标题中,void setName(const string&);是好的。这是告诉你,该函数需要引用string&表示引用),并且不返回任何内容。

但是,当你定义函数时,如果你引用它,你需要提供一个参数。

3

你的头文件中有这...

class MyClass 
    { 
    string name; 
public: 
    void setName(const string&); 
    }; 

实现文件中可以有这个...

void MyClass::setName(const string& s) 
    { 
    this->name = s; 
    }