C++ 学习之路(6):类的组合

/*
 语言:C++                编译环境:Visual C++6.0
 类的组合:
 在一个类中内嵌另一个类的对象作为数据成员,成为类的组合。该内嵌对象成
 为对象成员
*/
// 例:一个学生含有多门功课的成绩。学生类Student内嵌成绩类Score
#include <iostream>
#include <string>
using namespace std;
class Score     // 声明成绩类Score
{
   private:
       double computer;     // 计算机成绩
       double english;      // 英语成绩
       double mathematics;  // 数学成绩
   public:
       // 类Score的构造函数声明
       Score(double c=0, double e=0, double m=0);   
       void show();
};
// 类Score的构造函数定义
Score::Score(double c, double e, double m)
{
    computer = c;
    english = e;
    mathematics = m;
}
void Score::show()  // 显示三科成绩
{
    cout<<"Score computer: "<<computer<<endl;
    cout<<"Score english: "<<english<<endl;
    cout<<"Score mathematics: "<<mathematics<<endl;
}
// 声明学生类Student
class Student
{
   private:
       Score score1;// 类Score的对象score1是类Student的对象成员
       string name;     // 学生姓名
   public:
       // 类Student的构造函数声明
       Student(string name1, double s1, double s2, double s3);  
       void show();     // 声明输出数据函数show()

};
// 类Student的构造函数,含有初始化列表。用于对对象成员score1进行初始化
// 先执行类Score的构造函数为对象成员score1初始化,再执行类Student的构造函数对类Student的对象进行初始化
Student::Student(string name1, double s1, double s2, double s3)
:score1(s1,s2,s3)   
{
    name = name1;
}
void Student::show()
{
    cout<<"Name: "<<name<<endl;
    score1.show();  // 调用对象成员score1的show()函数显示3科成绩
}

int main()
{
    // 定义类Student的对象stu1,调用stu1的构造函数,初始化对
    //                                            象stu1
    Student stu1("LiMing",87,94,77);
    stu1.show();        // 调用stu1的show()函数,显示stu1的数据

    return 0;
}
/* 在main中创建Student的对象时,首先调用的是类Score的构造函数,对类Student的对象成员进行初始化,而后再调用类Student的构造函数对新的Student类型的对象进行初始化
*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值