您的位置:首页 > 其它

第七周项目1——成员函数、友元函数和一般函数的区别

2016-04-13 17:30 387 查看
问题及代码:

/*
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:main.cpp
* 作    者:赵志君
* 完成日期:2016年4月13日
* 版 本 号:v1.0
*
* 问题描述:求距离函数的三种版本:分别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计main()函数完成测试。
*/
#include <iostream>
#include <cmath>
using namespace std;
class CPoint
{
private:
double x;  // 横坐标
double y;  // 纵坐标
public:
CPoint(double xx=0,double yy=0):x(xx),y(yy){}
double getx(){return x;}
double gety(){return y;}
};
class juli
{
private:
CPoint a,b;
double len;
double x,y;
public:
juli(CPoint aa,CPoint bb):a(aa),b(bb){}
double getlen(){return len;}
void handle1();
friend void handle2(juli &);
};
void juli::handle1()
{
x=a.getx()-b.getx();
y=a.gety()-b.gety();
len=sqrt(x*x+y*y);
cout<<len<<endl;
}
void handle2(juli &l)       //友元函数可以直接访问私有成员
{
cout<<l.len<<endl;
}
void handle3(juli &l)     //一般函数调用类是只能调用公共接口
{
cout<<l.getlen()<<endl;
}
int main()
{
CPoint a(3,4),b(0,0);
juli l(a,b);
l.handle1();
handle2(l);
handle3(l);
return 0;
}


运行结果:



学习心得:在这个代码中运用了类的组合,本以为自己可以熟练运用了,可是写起来确实错误百出,最终靠百度才找出原因,可见就学过的知识掌握不牢固,应该在以后的实践中将这些学过的知识尽量的用上,这样才可以熟能生巧,加强理解记忆。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: