- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章类和简单对象
C++ 语言程序设计;概 述;8.1 类的定义;8.1.1 类的概念;8.1.2 类的定义格式;8.1.2 类的定义格式;8.1.2 类的定义格式;8.1.2 类的定义格式;8.1.2 类的定义格式;8.1.2 类的定义格式;8.1.2 类的定义格式;8.1.3 类的定义举例;8.1.3 类的定义格式举例;8.1.3 类的定义格式举例;8.1.3 类的定义格式举例;8.2.1 对象的定义格式;8.2.1 对象的定义格式;8.2.2 对象的成员表示;8.2.2 对象的成员表示;8.2.2 对象的成员表示;8.2.2 对象的成员表示;8.2.2 对象的成员表示;8.3 对象的初始化;8.3.1构造函数和析构函数;8.3.1构造函数和析构函数;8.3.1构造函数和析构函数;8.3.1构造函数和析构函数;8.3.1构造函数和析构函数;8.3.2拷贝构造函数和默认拷贝构造函数;8.3.2拷贝构造函数和默认拷贝构造函数;8.3.2拷贝构造函数和默认拷贝构造函数;8.4 成员函数的特征;例86程序分析:
程序中,在类XY中,定义了5个成员函数,其中一个是构造函数,另外有两个成员函数fun1()和fun2()是内联函数,还有两个成员函数虽然定义在函数体外,但是由于加了关键字inline,也成为了内联函数,它们是fun3()和fun4().;8.4.2成员函数的重载性
例87
8.4.3成员函数可以设置默认参数
例88;8.5静态成员;8.5.1静态数据成员
静态数据成员作为类的一种成员,它被类的所有对象共享,而不是属于某个对象的.在存储上只需存储一处,就可以供所有对象使用.因此,可以节省内存.静态数据成员由于是共用的,它的值对每个对象都是一样的.静态数据成员的值可以被更新.只要对静态数据成员的值更新依次,所有对象的该静态数据成员值都被更新,并且值是相同的,这样可以提高效率.;1.静态数据成员的定义或说明
静态数据成员定义或说明在类体内,在该成员名的类型说明符前边加关键字static.例如:
class A
{
…
private:
int a;
static int b;
};
其中,类A中定义了一个私有的静态数据成员b,它是int型的。而数据成员a是一般的私有数据成员。;2.静态数据成员的初始化
静态数据成员被定义后,必须对它进行初始化.初始化在类体外进行,一般放在该类的实现部分是最合适,也可以放在其他位置,例如,放在主函数前面等.
静态数据成员的初始化与该类的构造函数和析够函数无关,它的初始化格式如下:
数据类型类名::静态数据成员名=值;
这里,使用了作用域运算符“::”,来说明静态数据成员所属的类.在初始化时,不加关键字static,以免与静态对象相混淆.例如,
; class B
{
public:
B(int i);
…
private:
int a;
static int b;
};
B::B(int i)
{
a=i;
cout“Creat one object\n”;
}
int B::b=5;
…;8.5.2静态成员函数
对静态成员函数的说明和定义也与静态数据成员一样,在成员函数名前的类型说明符前加关键字static,函数实现可在类体内,也可在类体外,与一般成员函数相同.
在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员,如果非要引用非静态成员时,可通过对象来引用.
对静态成员函数的引用,在程序中一般使用下列格式:
类名::静态成员函数(参数)
有时,也用对象来引用,格式如下:
对象名.静态成员函数(参数)
;8.6 友元;8.6.1 友元函数
特点:
1.说明在类体内,说明时在函数的类型说明符前加关键字friend.
2.定义在类体外,定义格式同于一般的普通函数.
3.友元函数是非成员函数,在调用上与普通函数相同.
4.友元函数可以直接访问该类中的私有成员.;8.6.2 友元类
友元类是一种友元,它是把一个类当作另一个类的友元。当一个类作为另一个类的友元时,友元类中的所有成员函数都是另一个类的友元函数。
例8.12
程序分析:
该程序中有两个新的语法现象:
1、友元类的应用
在该程序的类X中说明一个友元类Y,即类Y是类X的友元类,类Y中的所有成员函数都可以引用类的私有成员。在类Y的成员函数中,引用了类X的两个私有数据成员,其中y是静态数据成员。同样,在类Y的成员函数Display()中,又引用了类X的私有数据成员x和y。;2、对象成员的使用
该程序的类Y有一个私有的数据成员是类X的一个对象a,一个类的对象可以作另一个类的成员。程序中
您可能关注的文档
- 第10章 - 复制.ppt
- 第10章工作解决方案.ppt
- 第10课 - 企业估值.ppt
- 站信号平面布局.ppt
- 端口信息信息.ppt
- 第11章排队理论.ppt
- 第10章3D绘图.ppt
- 第11章机械摩擦和效率.ppt
- 第12章蠕虫驱动 - 答案.doc
- 第12章 - 组织设计.ppt
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
文档评论(0)