opertor = 问题
class Employee
{
friend istream& operator>>(istream& in, Employee& s);
friend ostream&
operator<<(ostream& out, const Employee& s);
public:
Employee():m_nId(1){}
Employee(string s):m_eeName(s)
{
m_nId = 1;
}
Employee& operator=(Employee &e)
{
m_eeName = e.m_eeName;
m_nId = ++e.m_nId;
cout<<"==="<<endl;
getchar();
return *this;
}
Employee(string &s, int id):m_eeName(s),m_nId(id)
{
}
Employee(Employee& e)
{
m_eeName = e.m_eeName;
m_nId = ++e.m_nId;
}
private:
string m_eeName;
int m_nId;
};
//main
string s = "huha";
Employee eme1(s, 0);
Employee eme8(s, 12);
eme8 = eme1;
1>c:\documents and settings\adminimaster\my documents\visual studio 2005\projects\demo\cprimer\cprimer.cpp(76) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\documents and settings\adminimaster\my documents\visual studio 2005\projects\demo\cprimer\cprimer.cpp(76) : error C2371: “eme8”: 重定义;不同的基类型
1> c:\documents and settings\adminimaster\my documents\visual studio 2005\projects\demo\cprimer\cprimer.cpp(75) : 参见“eme8”的声明
1>c:\documents and settings\adminimaster\my documents\visual studio 2005\projects\demo\cprimer\cprimer.cpp(76) : error C2440: “初始化”: 无法从“Employee”转换为“int”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
我的属于什么情况?