注册 登录
编程论坛 C++教室

一起来写程序共同进步持序发贴今天我们一起来写继承类 顺便换头像

我是RMB帅哥 发布于 2013-01-07 01:47, 835 次点击
程序代码:
#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 编辑 ]
11 回复
#2
rjsp2013-01-07 08:18
你老师,估计C++没能学会,退而学Java,然后发现自己得道了,把C++写出了Java的那种酱面味,嗯,很不错的Java代码
#3
wp2319572013-01-07 08:21
以下是引用rjsp在2013-1-7 08:18:22的发言:

你老师,估计C++没能学会,退而学Java,然后发现自己得道了,把C++写出了Java的那种酱面味,嗯,很不错的Java代码
从哪些方面能看出来呢
#4
bccn2945932013-01-07 19:42
getline(cin,studentname,'\n');
       这行代码什么意思? getline()不是只有一个参数吗
#5
我是RMB帅哥2013-01-09 01:15
回复 4楼 bccn294593
从数据流中读取数据 到 第二个参数
#6
我是RMB帅哥2013-01-09 16:26
   friend void Student::setroomnumber(Room&);友元函数  
  将我们学生入住房间信息传递到学生类中
   
#7
zklhp2013-01-09 18:34
以下是引用rjsp在2013-1-7 08:18:22的发言:

你老师,估计C++没能学会,退而学Java,然后发现自己得道了,把C++写出了Java的那种酱面味,嗯,很不错的Java代码
大牛说得好
#8
yaobao2013-01-10 12:11
以下是引用rjsp在2013-1-7 08:18:22的发言:

你老师,估计C++没能学会,退而学Java,然后发现自己得道了,把C++写出了Java的那种酱面味,嗯,很不错的Java代码
KK
#9
mfkblue2013-01-10 12:42
没学过java,不明白哪里看出来的酱面味.
#10
我是RMB帅哥2013-01-10 16:14
大家好啊看看今天 天气一天大好 明天要上班哦 今天赶快发贴 哈哈 
#11
yaobao2013-01-10 17:05
哥们,换个头像吧.......虽然这是你的自由,可这绝对影响你的人气,尤其配上你的名字,太有冲击力了
#12
我爱下载1022013-01-10 22:49
头像果然很fantasy
1