永发信息网

一个c++程序(主要讲友元函数的)

答案:3  悬赏:70  手机版
解决时间 2021-08-01 03:44

求一个讲述友元函数的c++程序~!

最佳答案

#include<iostream>
#include<cmath>
using namespace std;
class Point
{
public:
Point(int xx=0,int yy=0){X=xx;Y=yy;}
int GetX(){return X;}
int GetY(){return Y;}
friend float fDist(Point &a,Point &b);//友元函数
private:
int X,Y;
};
float fDist(Point &p1,Point &p2)//友元函数定义
{
double x=double(p1.X-p2.X);
double y=double(p1.Y-p2.Y);
return float(sqrt(x*x+y*y));
}
void main()
{
int x,y;
cout<<"Please input the first point(X Y):";
cin>>x>>y;
Point mp1(x,y);
cout<<"Please input the second point(X Y):";
cin>>x>>y;
Point mp2(x,y);
cout<<"The length of the Point1 between Point2 is:"<<fDist(mp1,mp2)<<endl;//调用友元函数
}


结果


全部回答

#include "stdafx.h" //#ifndef _obj_ //#define _obj_ #include <iostream> using namespace std; class obj { private: int x,y; friend ostream &operator<<(ostream&,const obj&); friend istream &operator>>(istream&,obj&); }; //#endif //_obj_

ostream &operator<<(ostream& os,const obj& rhs) { os<<rhs.x<<rhs.y; return os; // enables cout << a << b << c; }

istream &operator>>(istream &is, obj &o) { is >> o.x; is >> o.y; return is; // enables cin >> a >> b >> c; }

int main(){ obj a; cin >> a; cout << a << endl;

system("pause"); }

非原创 转自 http://hi.baidu.com/%C2%B7%C4%CF%C6%BD/blog/item/bd03fd3d7b868bcf9f3d6238.html #include <iostream> using namespace std;

class Clock { public: Clock(int NewH=0,int NewM=0,int NewS=0); void ShowTime(); // void operator ++(); friend void operator ++(Clock c1); // void operator ++(int); friend void operator ++(Clock c1,int); private: int Hour,Minute,Second; };

Clock::Clock(int NewH,int NewM,int NewS) { if(NewH>=0&&NewH <24&&NewM>=0&&NewM <60&&NewS>=0&&NewS <60) { Hour=NewH; Minute=NewM; Second=NewS; } else { cout <<"Time error!" <<endl; } }

void Clock::ShowTime() { cout <<Hour <<":" <<Minute <<":" <<Second <<endl; }

//void Clock::operator ++() void operator ++(Clock c1) { // Second++; c1.Second++; // if(Second>=60) if(c1.Second>=60) { // Second=Second-60; c1.Second=c1.Second-60; // Minute++; c1.Minute++; // if(Minute>=60) if(c1.Minute>=60) { // Minute=Minute-60; c1.Minute=c1.Minute-60; // Hour++; c1.Hour++; // Hour=Hour%24; c1.Hour=c1.Hour%24; } } cout <<"++myClock"; }

//void Clock::operator ++(int) void operator ++(Clock c2,int) { // Second++; c2.Second++; // if(Second>=60) if(c2.Second>=60) { // Second=Second-60; c2.Second=c2.Second-60; // Minute++; c2.Minute++; // if(Minute>=60) if(c2.Minute>=60) { // Minute=Minute-60; c2.Minute=c2.Minute-60; // Hour++; c2.Hour++; // Hour=Hour%24; c2.Hour=c2.Hour%24; } } cout <<"myClock++"; }

int main() { Clock myClock(23,59,59); cout <<"First time output:"; myClock.ShowTime(); myClock++; myClock.ShowTime(); ++myClock; myClock.ShowTime(); }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
CS1。5里,在地图!!!!!!!!!17-NEW怎
请问手机上同步是什么意思
武冈市邵阳武冈市创胜智能家居在哪里啊,我有
语文作文!!!!!!!
DNF裏面CD流和體術流那個比較實用一點
为什么我24号的每日和紫钻就不是双倍?
如何才能让你最爱的人幸福快乐?
CF怎可送今验吗????????或送‘GP
刚买回来的电脑,才不到一周,怎么就好卡了?
西平县驻马店OPPO怎么去啊,谁知道地址啊
求,一般现在时英文作文,50词
银行开户办理网银怎么办理???
爱一个人于喜欢一个人有什么区别吗
log3 3x 定义域
气管炎能治好吗?需要多少钱的?
推荐资讯
DNF上挑加十字够一个哩鬼的时间吗
一个人最多可以几天不喝水?
我该什麽做呢?
极品飞车1生涯的第一关怎么过啊???
当阳市宜昌邻家炒货地址在哪里啊
允浩最近在做什么?
呼兰区哈尔滨金龙海鲜风味烤生蚝在哪里啊,我
如图,在△ABC中,以AB、AC为边向外做等边三
Matlab中@的用法
蒸湘区衡阳奥星游泳馆我想知道这个在什么地方
唱功是靠遗传?靠天生?还是靠练习的?
济源市济源温情网吧地址在什么地方,想今天过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?