标题:例11.6 包含子对象的派生类构造函数--谭浩强《 C++ 程序设计 》
只看楼主
hmsabc
Rank: 2
来 自:贵州省兴义市
等 级:论坛游民
帖 子:97
专家分:19
注 册:2010-8-2
结帖率:100%
 问题点数:0 回复次数:1 
例11.6 包含子对象的派生类构造函数--谭浩强《 C++ 程序设计 》
程序代码:
//例11.6 包含子对象的派生类构造函数--谭浩强《 C++ 程序设计 》p367.
#include <iostream>
#include <string>
using namespace std;


class Student                                                             //声明基类
{
public:                                                                   //公用部分
    Student( int n, string nam)                                           //基类构造函数
    { num = n;
      name = nam;
    }
    void display( )                                                       //成员函数,输出基类数据成员
    { cout << "num:" <<  num << endl << "name:"<< name << endl;}
protected:                                                                //保护部分
    int num;
    string name;
};


class Student1:public Student                                             //声明公用派生类 Student1
{
public:
   
    Student1( int n,string nam,int n1,string nam1,int a,string ad):
      Student( n, nam),monitor( n1,nam1)                                 //派生类构造函数
    {
        age = a;
        addr = ad;
    }
   
      void show( )
    {
        cout << "This student is:" << endl;
        display( );                                                       //输出 num 和 name
        cout << "age:" << age << endl;                                    //输出 age
        cout << "address:"<< addr << endl << endl;                        //输出 addr
    }
   
      void show_monitor( )                                                //成员函数,输出子对象
    {
        cout << endl << "Class mornitor is:" << endl;
        monitor.display( );                                               //调用基类成员函数
    }
private:                                                                  //派生类私有数据
   
    Student monitor;                                                      //定义子对象班长
    int age;
    string addr;
};


int main( )
{
    Student1 stud1( 10010,"wang - li",10001,"Li - sun",19,"115 Beijing Road, Shanghai");
   
    stud1.show( );                                                        //输出学生数据       
    stud1.show_monitor( );                                                //输出子对象数据
    system("pause");
    return 0;
}
/*所谓子对象,其实是派生类的一个数据成员,其特殊性是它是属于基类的对象之一。派生类对象 stud1
通过类内成员函数 show_monitor( )(派生类成员函数)调用基类公用成员函数 display( ) 达到输出 num
和 name 的目的。
派生类构造函数的任务有三:
一、对基类数据成员初始化;
二、对子对象数据成员初始化;
三、对派生类数据成员初始化;
*/
如果你觉得有用,需要拷贝,请注明出处:http://bbs.bccn.net
收到的鲜花
  • 东海一鱼2010-08-09 18:27 送鲜花  15朵   附言:原创内容
搜索更多相关主题的帖子: 谭浩强 程序设计 派生类 函数 
2010-08-09 17:50
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:0 
支持ing。。。。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-09 18:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315236-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.916675 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved