C++实验六const对象和const成员、友元

C++实验六const对象和const成员、友元

ID:37918856

大小:1.01 MB

页数:15页

时间:2019-06-02

C++实验六const对象和const成员、友元_第1页
C++实验六const对象和const成员、友元_第2页
C++实验六const对象和const成员、友元_第3页
C++实验六const对象和const成员、友元_第4页
C++实验六const对象和const成员、友元_第5页
资源描述:

《C++实验六const对象和const成员、友元》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、评语:评分项目评分内容分值评分结果预习情况是否完成预习工作。要求按实验指导书进行预习、并完成实验报告初稿、编写程序。20实验方案实验方案是否可行。要求目的、任务明确、原理清楚、步骤可操作、对实验过程数据有记录方案、对可能的错误有预备方案。30实验过程与结果实验结果是否正确。要求完成实验过程中的数据记录、记录要完整和准确、内容要详细,实验结果要与预期的正确结果一致。35实验结论实验结论是否正确。要求根据实验原理对实验过程中的数据、实验结果进行分析,得出实验结论。15总分100指导教师(签名)年月日说明:指导教师评分后,实验

2、报告交院(系)办公室保存。实验6const对象和const成员、友元1.实习目的及要求1)掌握coust对象、coust成员函数和coust成员数据的使用;2)掌握友元函数的定义和使用。2.预习1)预习coust对象及const成员的定义、使用等相关知识;2)预习友元的概念、友元成员函数、友元类等相关知识。预习知识总结:const声明格式注意常对象类名const对象名必须初始化,且不能改变(即:不能再次被赋值);常对象只能调用常成员函数类常成员函数类型说明符函数名(参数表)const不能更新对象的数据成员,也不能调用该类

3、中没有const修饰的成员函数。常数据成员Const类型说明符数据名任何函数不能对常数据成员赋值。构造函数对它初始化只能通过初始化列表类的友元友元通过友元关系一个普通函数或者类的成员函数可以访问封装于另外一个类中的数据友元函数在它的函数体中可通过对象名访问类的私有和保护成员(关键)友元类若A类为B类的友元类,友元类A的所有成员函数都自动成为B类的友元函数,都可以访问B类私有和保护成员UML语言例子友元函数<>+fDist(a:Piont&,b:Point&):float友元类<>类A类B常

4、成员函数<>+print():void常数据成员-r:constint&-a:constint疑问:常引用和常对象的UML语言怎么表示3.实验内容3.1分析下面的程序,观察编译程序时会出现什么样的错误。#includeclassSample{intn;public:Sample(inti){n=i;}voidsetvalue(inti){n=i;}voiddisplay(){cout<<"n="<

5、value(8);s.display();}分析:明显在main部分,对象s被定义被初始化为一个对象常量,其成员数据是不可以被setvalue修改的。编译的时候出现了如下的错误:errorC2662:'setvalue':cannotconvert'this'pointerfrom'constclassSample'to'classSample&'ConversionlosesqualifierserrorC2662:'display':cannotconvert'this'pointerfrom'constclassS

6、ample'to'classSample&'Conversionlosesqualifiers所以应该修改为:voidmain(){constSamples(5);Samples1(5);s.display();s1.setvalue(8);s1.display();}这样的话,s1的成员函数才可以修改成员数据的值。3.2编写并调试程序1).编写一个程序求直角坐标中一个点到直线的距离。要求设计一个点类point,含有两个公有成员数据x和y,代表点的坐标。另一个类为直线类line,它有三个私有成员数据a,d,c。分别代表直

7、线方程ax+by+c=0的系数。在类line中设计一个友元函数distance计算一个点到直线的距离。点(x,y)到直线ax+by+c=0的距离distance的计算公式如下:请根据下面给出的部分程序编写直线类line及其成员函数,以组成完整的程序。#include#includeclassline;classpoint{public:floatx,y;point(floati,floatj){x=i;y=j;}};...voidmain(){pointp1(2,4);linel1

8、(1,2,3);cout<<"distance="<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。