题目:
- 定义一个复数类。重载运算符“+”为成员函数,使之能够用于复数的加法;重载运算符“*”为友元函数,使之能够用于复数的乘法。
- 定义一个学生类,它包含学号(int)、姓名(string)、性别(sex)、分数(float)等数据成员,定义一个对象,重载赋值运算符“=”,使“=”能够实现int、string、float型的数据为该对象赋值;重载运算符“<<”“>>”,使之能够直接输入、输出学生类的对象。
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
int num;
string name;
char sex;
float score;
public:
Student(){}
Student(int nu,string na,char se='M',float sc=0)
{
num=nu;
name=na;
sex=se;
score = sc;
}
friend istream & operator >>(istream&,Student &);
friend ostream & operator <<(ostream&,Student &);
Student & operator =(const Student &);
};
istream &operator >>(istream & is ,Student &s )
{
is>>s.num>>s.name>>s.sex>>s.score;
return is;
}
ostream &operator <<(ostream & os ,Student &s)
{
os<<"【学生信息】"<<"学号:"<<s.num<<","<<"姓名:"
<<s.name<<","<<"性别:"<<s.sex<<","<<"成绩:"<<s.score<<endl;
return os;
}
Student& Student:: operator =(const Student &stu)
{
if(this!=&stu)
{
this->num=stu.num;
this->name=stu.name;
this->sex=stu.sex;
this->score=stu.score;
}
return *this;
}
int main()
{
Student stu;
cout<<"请分别输入该学生的学号、姓名、性别和成绩(中间用空格隔开):";
cin >> stu;
cout << stu;
Student stu2;
stu2=stu;
cout<<stu2;
system("pause");
return 0;
}