/*
【任务2】阅读下面的程序,仔细阅读注释。然后模仿完成求点类中距离的任务。
例:使用成员函数、友元函数和一般函数的区别
你需要完成的任务是,利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数,
并设计main()函数完成测试。此任务和上例的区别在于“距离是一个点和另外一个点的距离”,参
数个数上有体现。下面是点类的部分代码。
*/
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: CPoint.cpp
* 作 者: 计114-3 王兴锋
* 完成日期: 2012 年 4 月 2 日
* 版 本 号: V 1.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){}
void distance1(CPoint cp);
friend void distance2(CPoint cp1, CPoint cp2);
double getx(){return x;}
double gety(){return y;}
};
void CPoint::distance1(CPoint cp)
{
double dis = sqrt((cp.x-x)*(cp.x-x) + (cp.y-y)*(cp.y-y));
cout << "此两点的距离为:" << dis << endl;
}
void distance2(CPoint cp1, CPoint cp2)
{
double dis = sqrt((cp1.x-cp2.x)*(cp1.x-cp2.x) + (cp1.y-cp2.y)*(cp1.y-cp2.y));
cout << "此两点的距离为:" << dis << endl;
}
void distance3(CPoint cp1, CPoint cp2)
{
double dis = sqrt((cp1.getx()-cp2.getx())*(cp1.getx()-cp2.getx()) + (cp1.gety()-cp2.gety())*(cp1.gety()-cp2.gety()));
cout << "此两点的距离为:" << dis << endl;
}
int main()
{
CPoint cp1, cp2(1, 1);
cp1.distance1(cp2);
distance2(cp1, cp2);
distance3(cp1, cp2);
system("PAUSE");
return 0;
}
/*
通过这个题目让我学会了友元函数与成员函数以及外部普通函数的区别,
但是友元函数也要谨慎使用。
慎交友。
*/
分享到:
相关推荐
C++友元函数的使用,这个友元函数是另一个类的成员函数
1. 友元的使用。 2. 掌握重载函数的实现方法。 3. 综合应用。
本文档详细介绍了C++友元函数及友元类,方便大家对比学习
C++运算符重载函数作为类成员函数和友元函数.doc
以下是对C++运算符重载 成员函数与友元函数进行了介绍,需要的朋友可以过来参考下
设计一个点(Point)类,其中包括一对坐标数据成员、一个求两点之间距离的友元接口和显示坐标点的成员函数,并用数据进行测试。 (2)程序设计说明 ① 在头文件中声明类,在源文件中定义类的成员函数,采用构造函数...
c++ demo,重载运算符,友元函数的实现
本资源为C++实验1-13,包含完整程序、注释、报告非常...实验7-利用友元编程 实验8-继承和派生的编程 实验9-利用多态编程 实验10-运算符重载编程 实验11- 利用模板编程 实验12-利用文件编程 实验13- 面向对象综合编程
这是关于C++中、如何将普通函数声明友元函数的、求间隔日期的例子。适用于C++初学者学习用。
日期类Date包含日期的年、月、日三个数数据成员,编写一个友元函数,求两个日期之间相差的天数; 重要的是理顺:这个函数不是Date类的成员函数
成员函数做友元函数
友元函数和友元类的需要:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又...
友元函数,类外普通函数声明为类的友元,之后即可与类共享数据
C++静态成员、友元函数、类模板实验,共3个任务
本程序是使用友元成员函数的一个典型例子,简单、实用,对于初学者很有帮助。
一个实例,实现运算符重载(成员函数和非成员函数两种方式),友元函数的使用,注意事项等,自己学习时编写的,
C++上机实验报告-实验六全文共11页,当前为第1页。C++上机实验报告-实验六全文共11页,当前为第1页。实验六 多态性 C++上机实验报告-实验六全文共11页,当前为第1页。 C++上机实验报告-实验六全文共11页,当前为第1...
关于c+模板之友元类友元函数的实例化,图形界面之矩形。