笔记来源:51CTO学习网站
C++基础笔记(四)
类的组合
1.类的组合
-类中的成员数据是另一个类的对象;
-可以在已有的抽象的基础上实现复杂的抽象;
**class CClass*
{
......
public:
//构造函数
CClass(int nYear,int nMonth,int nDay,string nszName,int nMaxNum);
//析构函数
virtual ~CClass();
private:
string m_szName; //班级名
int m_nNum; //学员数
int m_nMaxNum; //最大学员数
CStudent *m_nStudents; //学员对象数组指针
CDate m_dtBegin; //开班时间
};
class CDate
{
public:
//得到时间字符串,格式(yyyy-mm-dd)
string GetDate();
public:
//构造函数
CDate(int nYear,int nMonth,int nDay);
//西沟函数
virtual ~CDate();
private:
int m_nYear; //年
int m_nMonth; //月
int m_nDay; //日
};*
2.类组合的构造函数
-原则:不仅要负责对本类中的基本类型成员数据赋值,也要对对象成员初始化。
-声明形式:
类名::类名(对象成员所需的形参,本类成员形参)
:对象1(参数),对象2(参数),……
{
本类初始化
}
3.构造和析构的顺序
-构造函数的调用顺序:调用内嵌对象的构造函数(按内嵌时的声明顺序,先声明者先构造);调用本类的构造函数
-析构函数的调用顺序:调用本类的析构函数;调用内嵌对象的析构函数(按内嵌时的声明顺序,先声明者先析构)
-若调用默认构造函数(即无形参的),则内嵌对象的初始化也将调用相应的默认构造函数
4.类的声明
类应该先声明后使用。类声明的方式有两种:使用前向引用声明,或者在使用之前,导入类的头文件;
-前向引用声明:
1)前向引用声明只为程序引入一个标识符;
2)不能声明该类的对象,也不能在内联成员函数中使用该类的对象;
3)当使用前向引用声明时,只能使用被声明的符号,而不能涉及类的任何细节。
-导入类的头文件:#include<studio.h>;#include"userdefined.h"