* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 外部接口:此对象利用它与其它对象发生联系。 特定的访问权限:在对象外部不能访问或修改受保护的内部实现细节。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 友元类 一个类也可以作为另一个类的友元。它的所有成员函数都成为另一个类的友元函数 例如: class Y { //… }; class X { //… friend Y; // 声明类Y为类X的友元类 //… }; 对象成员 如果一个类的对象是另一个类的数据成员,则称这样的数据成员为对象成员。例如: class A { //... }; class B { A a; //类A的对象a为类B的对象成员 public: //… }; //称类组合 使用对象成员着重要注意的问题是对象成员的初始化问题,即类B的构造函数如何定义? 例如有以下的类: class X{ 类名1 对象成员名1; 类名2 对象成员名2; … 类名n 对象成员名n; }; 一般来说,类X的构造函数的定义形式为; X::X(形参表0):对象成员名1(形参表1),…, 对象成员名i(形参表i) ,…,对象成员名n(形参表n) { // …构造函数体 } class Point { private: float x,y; //点的坐标 public: Point(float h,float v); //构造函数 float GetX(void); //取X坐标 float GetY(void); //取Y坐标 void Draw(void); //在(x,y)处画点 }; class Line { private: Point p1,p2; //线段的两个端点 public: Line(Point a,Point b); //构造函数 Void Draw(void); //画出线段 }; //函数实现略 * 类组合的构造函数设计 原则:不仅要负责对本类中的基本类型成员数据赋初值,也要对对象成员初始化。 声明形式: 类名::类名(对象成员所需的形参,本类成员形参) :对象1(参数),对象2(参数),...... { 本类初始化 } * 类组合的构造函数调用 构造函数调用顺序:先调用内嵌对象的构造函数(按内嵌时的声明顺序,先声明者先构造)。然后调用本类的构造函数。(析构函数的调用顺序相反) 若调用默认构造函数(即无形参的),则内嵌对象的初始化也将调用相应的默认构造函数。 * 类的组合举例(二) class Part //部件类 { public: Part(); Part(int i); ~Part(); void Print(); private: int val; }; class Whole { public: Whole(); Whole(int i,int j,int k); ~Whole(); void Print(); private: Part one; Part two; int date; }; 53 Whole::Whole() { date=0; } Whole::Whole(int i,int j,int k): two(i),one(j),date(k) {} //...其它函数的实现略 54 常类型 1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。 常引用的说明形式如下: const 类型说明符 引用名 例如: int a=5; const int b=a; 其中,b是一个常引用,它所引用
您可能关注的文档
最近下载
- 人教版九年级上册化学1至7单元综合测试卷(含答案).pdf VIP
- 骨科、麻醉科加速康复围手术期患者慢性病管理专家共识(2025年版) .pdf
- 人教版九年级化学上册:一至六单元测试卷.docx VIP
- 安徽省宿州市十三校2026届化学高一第一学期期末教学质量检测试题含解析.doc
- 一年级语文上册识生字测试题.doc VIP
- 输血安全护理ppt完整课件.pptx VIP
- 高一数学培优复数及其运算-讲义(学生版).pdf VIP
- 幼小衔接识字PDF打印版.pdf VIP
- 深度解析(2026)《DLT 5022-2023发电厂土建结构设计规程》.pptx VIP
- 文员招聘考试题及答案.docx VIP
原创力文档

文档评论(0)