- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录
类和对象
类的定义
对象的定义
二、类作用域和成员访问权限
1. 类名的作用域
2.类中成员的可见性
三、友元
1.友元概述
2.友元函数
3.友元成员函数
4.友元类
四、实验设计主题
用C++编写一个学生成绩管理系统,并编写一个友元函数能完成对成绩进行从高到低排序
1. 学生成绩管理系统源代码
2.程序运行结果
五、实验总结
类和对象
1.类的定义
C++中定义类的一般格式如下:
class 类名
{
private:
[私有型数据和函数]
public:
[公有型数据和函数]
protected:
[保护型数据和函数]
};
各个成员函数的实现
当类的成员函数的函数体在类的外部定义时,必须由作用域运算符“::”来通知编译系统该函数所属的类。例如:
class CMeter
{
public:
double m_nPercent; // 声明一个公有数据成员
void StepIt(); // 声明一个公有成员函数
void SetPos(int nPos); // 声明一个公有成员函数
int GetPos()
{
return m_nPos;
} // 声明一个公有成员函数并定义
private:
int m_nPos; // 声明一个私有数据成员
}; // 注意分号不能省略
void CMeter::StepIt()
{
m_nPos++;
}
void CMeter::SetPos(int nPos)
{
m_nPos = nPos;
}
2.与结构类型一样,它也有三种定义方式:声明之后定义、声明之时定义和一次性定义。但由于“类”比任何数据类型都要复杂得多,为了提高程序的可读性,真正将“类”当成一个密闭、“封装”的盒子(接口),在程序中应尽量在对象的声明之后定义方式,并按下列格式进行:
类名 对象名表
一个对象的成员就是该对象的类所定义的数据成员(成员变量)和成员函数。访问对象的成员变量和成员函数和访问变量和函数的方法是一样的,只不过要在成员前面加上对象名和成员运算符“.”,其表示方式如下:
对象名.成员变量
对象名.成员函数(参数表)
例如:
myMeter.m_nPercent, myMeter.SetPos(2), Meters[0].StepIt();
类作用域和成员访问权限
1. 类名的作用域
如果在类声明之前就需要使用该类名定义对象,则必须用下列格式在使用前进行提前声明(注意,类的这种形式的声明可以在相同作用域中出现多次):
class 类名;
例如:
class COne; // 将类COne提前声明
class COne; // 可以声明多次
class CTwo
{ //…
private:
COne a; // 数据成员a是已定义的COne类对象
};
class COne
{ //…
};
2.类中成员的可见性
(1)在类中使用成员时,成员声明的前后不会影响该成员在类中的使用,这是类作用域的特殊性。例如:
class A
{
void f1()
{
f2(); // 调用类中的成员函数f2
coutaendl; // 使用类中的成员变量a
}
void f2(){}
int a;
};
(2)由于类的成员函数可以在类体外定义,因而此时由“类名::”指定开始一直到函数体最后一个花括号为止的范围也是该类作用域的范围。例如:
class A
{
void f1();
//…
};
void A::f1()
{ //…
}
则从A::开始一直到f1函数体最后一个花括号为止的范围都是属于类A的作用域。
(3)在同一个类的作用域中,不管成员具有怎样的访问权限,都可在类作用域中使用,而在类作用域外却不可使用。例如:
class A
{
public:
int a;
//…
};
a = 10; // 错误,不能在A作用域外直接使用类中的成员
三、友元
1.友元概述
类的私有型(private)数据成员和保护型(protected)数据成员只能在类中由该类的成员函数来访问,类的对象及外部函数只能访问类的公有型(public)成员函数,类的私有和保护型数据成员只能通过类的成员函数来访问,如图2.1(a)所示。但是,如果在类中用friend关键字声明一个函数,且该函数的形参中还有该类的对象形参,这个函数便可通过形参对象或通过在函数体中定义该类对象来访问该类的任何私有和保护型数据成员,
2.友元函数
友元函数可分为友元外部函数和友元成员函数。当一个函数f是A类的友元,且f还是另
您可能关注的文档
最近下载
- 《房屋建筑学》第6章 建筑构造概论.ppt VIP
- 辽宁省抚顺市新抚区2024-2025学年八年级上学期10月月考语文试题.docx VIP
- 2025至2030中国桶装水行业调研及市场前景预测评估报告.docx
- 《Robots-will-do-everything》机器人做事课件.pptx VIP
- 项目总体工程设计服务方案.docx VIP
- 浦东独具特色的传统民居.pptx
- 2025DLT572电力变压器运行规程.docx VIP
- 化工分离习题.doc VIP
- 辽宁省抚顺市新抚区2024-2025学年八年级上学期10月月考语文试卷(含答案).docx VIP
- 数码相机-奥林巴斯-奥林巴斯U-300U-400说明书.pdf VIP
文档评论(0)