64,632
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string>
using namespace std;
class worker
{
private:
string name;
string classic;
double wage;
public:
worker()
{
}
worker(string a_name,string a_classic,int a_wage):name(a_name),classic(a_classic),wage(a_wage)
{
}
worker(const worker& obj)
{
name = obj.name;
classic = obj.classic;
wage = obj.wage;
}
worker& operator=(const worker& obj)
{
name = obj.name;
classic = obj.classic;
wage = obj.wage;
return *this;
}
bool operator== (const worker &obj2)
{
if(name== obj2.name && classic == obj2.classic && wage == obj2.wage)
return true;
return false;
}
friend ostream& operator<<(ostream& os,const worker &obj)
{
os<< obj.name<<"\t"<<obj.classic<<"\t"<<obj.wage<<endl;
return os;
}
friend istream& operator>>(istream& os,worker &obj)
{
os>>obj.name>>obj.classic>>obj.wage;
return os;
}
};
int main()
{
//测试构造函数和重载的<<
worker example1("小明","top",5000);
cout<<example1;
//测试赋值运算符
worker example2=example1;
cout<<example2;
//拷贝构造函数
worker example3(example1);
cout<<example3;
//比较运算符重载(==)
worker example4("小华","top",5000);
worker example5("小明","mid",500);
worker example6("小明","top",5001);
worker example7("小明","top",5000);
if(example1==example4)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
if(example1==example5)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
if(example1==example6)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
if(example1==example7)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
//测试>>运算符
worker temp;
cin>>temp;
cout<<temp;
return 0;
}
楼主 发表于: 2014-11-14 08:52:08
需求:
1.岗位类:名称、级别、工资
2.构造函数
3.拷贝构造函数
4.赋值运算符重载
5.输出和输入运算符重载
6.比较运算符重载(==)
7.并实现main()函数对所设计的类进行充分测试。
#include <iostream>
using namespace std;
class worker
{
private:
string name;
int classic;
double wage;
public:
worker()
{
}
worker(string a_name.int a_classic,int a_wage):name(a_name),classic(a_classic),wage(a_wage)
{
}
worker(const worker& obj)
{
name = obj.name;
classic = obj.classic;
wage = obj.wage;
}
worker& operator=(const worker& obj)
{
name = obj.name;
classic = obj.classic;
wage = obj.wage;
return *this;
}
ostream& operator<<(ostream& os,const worker &obj)
{
os<< obj.name<<"\t"<<obj.classic<<"\t"<<obj.wage<<endl;
return obj;
}
istream& <<(istream& os,const worker &obj)
{
os>>obj.name>>obj.classic>>obj.wage;
return obj;
}
bool operator== (const worker &obj2)
{
if(name == obj2.name && classic == obj2.classic && wage == obj2.wage)
return true;
return false;
}
}
int main()
{
//测试构造函数和重载的<<
worker example1("小明","top",5000);
cout<<example1;
//测试赋值运算符
worker example2=example1;
cout<<example2;
//拷贝构造函数
worker example3(example1);
cout<<example3;
//比较运算符重载(==)
worker example4("小华","top","5000");
worker example5("小明","mid","5000");
worker example6("小明","top","5001");
worker example7("小明","top","5000");
if(example1==example4)
cout<<"true"<<endl;
else
cour<<"false"<<endl;
if(example1==example5)
cout<<"true"<<endl;
else
cour<<"false"<<endl;
if(example1==example6)
cout<<"true"<<endl;
else
cour<<"false"<<endl;
if(example1==example7)
cout<<"true"<<endl;
else
cour<<"false"<<endl;
//测试>>运算符
work temp;
cin>>temp;
cout>>temp;
return 0;
}