![]() |
#2
rjsp2013-01-07 08:18
|

#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;
}
我现凭着记忆写点继承类的一些知识总结,希望能多容纳一些知识在这个程序里面。#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 编辑 ]