- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例11.6 将一个类的成员函数说明为另一个类的友元函数
#include iostream
using namespace std;
class N; // N类的引用性说明,
//因为N的定义在M之后,而M中又使用了N。
class M
{
int a, b;
public:
M(int x, int y){ a=x; b=y; }
void Print( )
{
couta=a\tb=bendl;
}
void Setab(N ); // Setab( )是类M的成员函数 // A
} ; //在Setab( )中,可以访问N类的私有成员。
class N
{
int c, d;
public:
N(int a, int b){ c=a; d=b;}
void Print( )
{
coutc=c\td=dendl;
}
friend void M::Setab(N);
//将M类的成员函数说明成本类的友元函数
};
void M::Setab(N obj)// M的成员函数Setab( )是类N的友元函数,
{
a = obj.c; //因此在Setab( )中可直接访问类N的私有成员。
b = obj.d;
}
int main( )
{
M m(25, 40);
N n(55, 66);
coutm: ; m.Print( );
coutn: ; n.Print( );
m.Setab(n);
coutm: ; m.Print( );
return 0;
}
程序的运行结果如下:
m: a=25 b=40
n: c=55 d=66
m: a=55 b=66
返回ppt讲稿
例11.8 常成员函数和一般成员函数对常数据成员和一般数据成员的访问合法性说明。
#include iostream
#include cmath
using namespace std;
class Point 注意类中的两个fun( )函数是不同的函数
{
int x; // 一般数据成员 红字教材错
const int y; // 常数据成员
public:
Point(int a=0, int b=0): x(a), y(b) { }
int fun( ) // 一般成员函数
{
x = 5; // 修改一般数据成员x,合法
y = 6; // 修改常数据成员,非法
return x+y; // 访问x和y合法
}
int fun( ) const // 常成员函数
{
x = 5; // 修改一般数据成员x,非法
y = 6; // 修改常数据成员,非法
return x+y; // 访问x和y,合法
}
};
返回ppt讲稿
例11.9 const参与区分重载函数。
#include iostream
using namespace std;
class Point
{
int x;
const int y;
public:
Point(int a=0, int b=0): x(a), y(b) { }
int fun( );
int fun( ) const; // 类中声明有const
};
int Point::fun( )
{
return x+y;
}
int Point::fun( ) const // 类外定义也必须有const
{
return x-y;
}
int main( )
{
Point p1(1,8);
const Point p2(1,8);
coutp1.fun( ),p2.fun( )endl;
// p1调用的是第1个fun函数,p2调用的是第2个fun函数 红字教材错
return 0;
}
程序的运行结果是:
9,-7
返回ppt讲稿
您可能关注的文档
最近下载
- 高热封强度耐135℃高温蒸煮的CPP膜及其制备方法.pdf VIP
- 物业交接表格-全.pdf VIP
- (高清版)DG∕TJ 08-2433B-2023 外墙保温一体化系统应用技术标准(现浇混凝土保温外墙).docx VIP
- GB8478-2020 铝合金门窗国家标准.pdf VIP
- 福建福州市八县市2024-2025高二上学期期中数学试卷及答案.pdf VIP
- 正确的员工考核评分表1.doc VIP
- 部编版三年级下册晋升职称无生试讲稿——22.我们奇妙的世界(1).docx VIP
- 《人工智能发展历程》课件.ppt VIP
- 十五规划PPT课件.pptx VIP
- 入党积极分子考试题库及答案.docx VIP
原创力文档


文档评论(0)