一起来写程序共同进步持序发贴今天我们一起来写继承类 顺便换头像
程序代码:
#include<iostream> #include<string> using namespace std; class Room; class Student{ //学生类 private : int number; string name; int roomnumber; public: void set(int a,string c){number=a;name=c;} int getnumber(){return number;} string getname(){return name;} void setroomnumber(Room&); int getroomnumber(); }; class Room{ //寝室类 protected: //定义成保护类型,只让它的派生类可以访问,其它类不能访问数据成员 int kind; Student information; public: void setkind(int a); int getkind(); void instudent(Student &c); Student readstudent(); friend void Student::setroomnumber(Room&); }; //我们准备搞个高级寝室类 继承寝室类 class Senioroom:public Room{ private: string Roomkind; public : //........... }; int Student::getroomnumber(){ //取得学生所在房间信息 return roomnumber; } void Student::setroomnumber(Room&r){ //将房间信息传送到学生信息块 roomnumber=r.kind; } void Room::instudent(Student &c){ //将学生信息录入房间 information=c; } Student Room::readstudent(){ //取得房间学生信息 return information; } void Room::setkind(int a){ //设置房间号 kind=a; } int Room::getkind(){ //取得房间号 return kind; } void main(){ string studentname; int studentnumber; getline(cin,studentname,'\n'); cin>>studentnumber; //输入学生信息 Student a; a.set(studentnumber,studentname); //将学生信息录入 Room room; room.instudent(a); room.setkind(235); a.setroomnumber(room); //将房间信息传入到学生类中去 cout<<"学生房间号码:"<<a.getroomnumber()<<endl; Student stu=room.readstudent(); //将房间学生信息读出 cout<<stu.getname()<<endl<<stu.getnumber()<<endl; }我现凭着记忆写点继承类的一些知识总结,希望能多容纳一些知识在这个程序里面。
1.首先我们称Room类为基类(父类),Seniorroom为派生类(子类)。
2.子类可以继承父类的成员,但是不能访问父类的私有成员。
3.如果是protected型成员就会有两种特性,对于子类seniorroom它是public类型,可以访问。对于不是Room的子类它就是私有的。
class Senioroom:public Room{ //这里我们继承的是公有的Room类
private:
string Roomkind;
public :
//...........
};
这继承公有类和私有类是有规则的。(protected类型我记不住了)
当继承是私有类时:
1.我们的子类不能访问父类的私有变量
2.子类继承父类的公有变量时,在子类里它会变成私有变量。
上两天班回来我接着来写....
[ 本帖最后由 我是RMB帅哥 于 2013-1-11 00:52 编辑 ]