c++之学习程序Te_St(转换)

来源:互联网 发布:中国网络书法联盟 编辑:程序博客网 时间:2024/06/03 16:57

      现在还是对c++程序的大概结构不太理解的透彻,只能理解个框架,尤其是在看了程序之后理解了,然后盖上书,默写程序时,对定义函数里的函数成员元素时,老弄错,呵呵。

     这个程序让我最大的后获是可以自己重载输出,免了,加后缀display,那么麻烦了。

#include<iostream.h>
#include<string.h>
class Student
{
public:
 Student(int,char[],char,float);
 int get_num(){return num;}
 char *get_name(){return name;}//?*
 char get_sex(){return sex;}
 friend ostream& operator<<(ostream &,Student &);
private:
 int num;
 char name[20];
 char sex;
 float score;
};
Student::Student(int n,char nam[],char s,float sco)
{
 num=n;
 strcpy(name,nam);
 sex=s;
 score=sco;
}
ostream& operator<<(ostream &out,Student &stud)
{
 out<<"num:"<<stud.num<<"/nname:"<<stud.name<<"/nsex:"<<stud.sex<<"/npay:"<<stud.score<<"/n/n";
 return out;
}

class Teacher
{
public:
 Teacher(){}
 Teacher(Student&);
 Teacher(int n,char nam[],char s,float p);
 friend ostream& operator<<(ostream&,Teacher&);
private:
 int num;
 char name[20];
 char sex;
 float pay;
};
Teacher::Teacher(int n,char nam[],char s,float p)//定义Teacher构造函数
{
 num=n;
 strcpy(name,nam);
 sex=s;
 pay=p;
}
Teacher::Teacher(Student& stud)//定义转换构造函数
{
 num=stud.get_num();
 strcpy(name,stud.get_name());
 sex=stud.get_sex();
 pay=1500;
}
ostream& operator<<(ostream &out,Teacher &teach)
{
 out<<"num:"<<teach.num<<"/nname:"<<teach.name<<"/nsex:"<<teach.sex<<"/npay:"<<teach.pay<<"/n/n";
 return out;
}
int main()
{
 Teacher teacher1(10001,"Li",'f',1234.5),teacher2;
 Student student1(20010,"Wang",'m',89.5);
 cout<<"student1:"<<endl;
 cout<<student1;
 teacher2=Teacher(student1);
 cout<<"teacher2=Teacher(student1):"<<endl;
 cout<<teacher2;
 return 0;
}

原创粉丝点击