- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第24篇 友元 this指针-课件(PPT-精)
Visual C++面向对象与可视化程序设计 苏彩霞 回顾 class Rect { private: double length; double width; double height; double v; double s; public: void input(); double volume(); double sur_area(); void output(); }; #include rect.h #include iostream using namespace std; void Rect::input()//设置长方体的长、宽、高 { cout请依次输入长方体的长、宽、高; cinlengthwidthheight; } double Rect::volume() { v=length*width*height; return(v); } double Rect::sur_area() { s=(length*width+length*height+height*width)*2; return(s); } void Rect::output() { cout长方体的体积为:vendl; cout长方体的表面积为:sendl; } Rect.h Rect.cpp 类 的 定 义 回顾 构 造 函 数 的 定 义 #include iostream #include rect.h using namespace std; void main() { //A.input(); Rect A(2,3,4); Rect B(3,4,5); A.volume(); A.sur_area(); A.output(); B.volume(); B.sur_area(); B.output(); } class Rect { private: double length; double width; double height; double v; double s; public: //void input(); Rect(double,double,double); double volume(); double sur_area(); void output(); }; //void Rect::input()//设置长方体的长、宽、高 //{ } Rect::Rect(double length1,double wide,double high) { length=length1; width=wide; height=high; } Rect.h Rect.cpp构造函数的定义 构 造 函 数 的 使 用 友元的引入 类 数据 成员 成员函数 普通函数 ? 问题:用面对象的方法实现:输入两个(x,y)坐标,输出两点间距离 数据描述: 横坐标、纵坐标、距离 数据处理: 输入两个点的坐标(x,y) 计算两点间的距离 disatance 友元的引入 数据成员 成员函数 类: class Point{private:double x,y;public:Point(double xx,double yy){x=xx;y=yy;} //构造函数...} 计算两点间的距离 函数Distance(,)参数为Point类的两个对象; Distance()要计算距离,必须访问对象里的私有变量x,y;Distance(Point a, Point b) { double dx = a.x - b.x; double dy = a.y - b.y; return sqrt(dx*dx+dy*dy);} 距离函数分析 Distance函数三种可能的情况: 独立于类Point的全局函数; 类Point的成员函数; 类Point的友元函数。 1)非类Point成员函数排除,因为Distance(,)需要访问类Point对象的Private变量,这是不允许的。 2)类Point的成员函数。 #include iostream using namespace std; class point { double x; double y; double dist; public: void set() { cout依次输入点的横纵坐标endl; cinxy; } doubleDistance(point xx,point yy) { dist=sqrt((xx.x-yy.x)*(xx.x-yy.x)+(xx.y-yy.y)*(xx.y-yy.y)); return(dist); } void put() {
文档评论(0)