大神求助啊,
我已经在中.cpp引入了对应的头文件,但事先声明的变量貌似不能用我用的是vs2010:各变量报错 未声明的标识符
下面是代码:
.h文件
#ifndef Person_H_
#define Person_H_
#include <string>
#include <ostream>
using namespace std;
class Person{
string name;
string homeTele;
string email;
public:
Person(string newname,string tele,string email);
~Person(void);
string getName()const;
string getHomeTele()const;
string getEmail() const;
void setHomTele(string newTele );
void setEmail( string newEmail );
bool operator==( const Person& p);
friend ostream& operator<<(ostream& o, const Person& p);
};
#endif
.cpp文件
#include "Person.h"
Person::Person(string newname,string tele,string email):name(newname),homeTele(tele),email(email)
{
}
Person::~Person(void)
{
}
string getName()const{ return name;}
string getHomeTele()const{return homeTele;}
string getEmail()const{return email;}
void setHomTele(string newTele ){ homeTele=newTele;}
void setEmail( string newEmail ){ email=newEmail; }
bool operator==(const Person& p){
if(this->name==p.getName())
return true;
else
return false;
}
ostream& operator<<(ostream& o, const Person& p){
o<<p.getName()+"_"+p.getHomeTele()+"_"+p.getEmail();
return o;
}
还有,它还说二进制“operator ==”的参数太少,不是有隐含的this形参吗?
[解决办法]
把编译器提示的错误 贴出来
[解决办法]
重载相等符号你试试
Person & operator==(const Person& p)
实现:
Person & Person::operator=(const Person & p)
{
name=p.name;
homeTele=p.homeTele;
email=p.email;
return *this;
}
[解决办法]
定义没有加类作用域 Person::