您的位置:首页 > 编程语言 > C语言/C++

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

2016-03-16 16:43 369 查看
/*
语言: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类型的对象进行初始化
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++