Go on marching
With the last homework shown below of this chapter done, I went into a new chapter, which is inheritance. Hope it won't puzzle me so much like operator overloading.
#include <iostream>
#include <string>
using namespace std;
class Student;
class Teacher
{
public:
Teacher()
{
id=0000;
name="None";
sex="None";
hobby="None";
}
Teacher(int i,string n,string s):id(i),name(n),sex(s){}
friend void change (Teacher &,Student &);
friend ostream& operator<< (ostream &,Teacher &);
private:
int id;
string name;
string sex;
string hobby;
};
class Student
{
public:
Student()
{
id=0000;
name="None";
sex="None";
hobby="None";
}
Student(int i,string n,string s):id(i),name(n),sex(s),hobby("None"){}
friend void change (Teacher &,Student &);
friend ostream& operator<< (ostream &,Student &);
private:
int id;
string name;
string sex;
string hobby;
};
void change (Teacher &t,Student &s)
{
t.id=s.id;
t.name="Mr. "+s.name;
t.sex=s.sex;
}
ostream& operator<< (ostream &output,Student &i)
{
output << i.id << " " << i.name << " " << i.sex << " " << i.hobby << endl;
return output;
}
ostream& operator<< (ostream &output,Teacher &i)
{
output << i.id << " " << i.name << " " << i.sex << " " << i.hobby << endl;
return output;
}
int main(void)
{
Student s(1001,"Makui","Male");
cout << s;
Teacher t;
change(t,s);
cout << t;
return 0;
}
评论