これは、ハーブサッターのgotw3(http://www.gotw.ca/gotw/003.htm)から派生しています。
次のクラスとFindAddr
関数で...
using std::string;
using std::list;
class Employee
{
public:
Employee(const string& n, const string& a) : name(n), addr(a) { }
string name;
string addr;
};
string FindAddr(const list<Employee>& l, const string& name)
{
string addr;
list<Employee>::const_iterator i = find(l.begin(), l.end(), name);
if (i != l.end()) {
addr = (*i).addr;
}
return addr;
}
Employeeクラスには文字列への変換がないため、コンパイルエラーが発生します。このような変換は必ずしも賢明ではないことがわかりますが、演習の目的で、単純な変換を追加しました。
string::string(const Employee& e)
{
return e.name;
}
これは私にエラーを与えます:
gotw3.cc:17:9: error: C++ requires a type specifier for all declarations
string::string(const Employee& e)
~~~~~~ ^
私は何が間違っているのですか?