| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 975 人关注过本帖
标题:[提问]关于友员函数
只看楼主 加入收藏
knight2003li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-11-23
收藏
 问题点数:0 回复次数:16 
[提问]关于友员函数

代码:

#include <iostream.h>
#include <math.h>

class Point
{
public:
Point(double xx, double yy) { x = xx; y = yy; }
void Getxy();
friend double Distance(Point &a, Point &b);
private:
double x, y;
};

void Point::Getxy()
{
cout<< "(" << x << ", " << y << ")";
}

double Distance(Point &a, Point &b)
{
double dx = a.x - b.x;
double dy = a.y - b.y;
return sqrt(dx*dx+dy*dy);
}

int main()
{
Point p1(3.0, 4.0), p2(6.0, 8.0);
p1.Getxy();
p2.Getxy();
double d = Distance(p1, p2);
cout << "两点之间的距离是:" << d;
return 0;
}

[提问]其中的Point(double xx, double yy) { x = xx; y = yy; }是什麽意思?在主函数中:Point p1(3.0, 4.0), p2(6.0, 8.0);

可以这样写吗?不是(类名.someone someone.类成员)

搜索更多相关主题的帖子: 函数 提问 
2005-11-23 16:22
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
以下是引用knight2003li在2005-11-23 16:22:00的发言:

[提问]其中的Point(double xx, double yy) { x = xx; y = yy; }是什麽意思?在主函数中:Point p1(3.0, 4.0), p2(6.0, 8.0);

Point (double xx, double yy){ x = xx; y = yy; } 是构造函数

Point p1(3.0, 4.0), p2(6.0, 8.0); 是声明了两个Point对象,利用构造函数设置了类的数据成员。


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2005-11-23 16:27
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 

是一个构造函数,后一句是double x, y的赋值.


=×&D o I p R e E n C g T l X&×=
2005-11-23 16:29
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
又比我快!

=×&D o I p R e E n C g T l X&×=
2005-11-23 16:30
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
以下是引用Bjarne在2005-11-23 16:30:00的发言:
又比我快!

也不一定啊。有一个就是你比我快。
我也不知道你在看。


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2005-11-23 16:32
knight2003li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-11-23
收藏
得分:0 

int main()
{
Point p1(3.0, 4.0), p2(6.0, 8.0);
p1.Getxy();
p2.Getxy();
double d = Distance(p1, p2);
cout << "两点之间的距离是:" << d;
return 0;
}

中Point p1(3.0, 4.0), p2(6.0, 8.0);point是指类point还是指类point中的函数point?

x=xx x=3.03.0????


2005-11-23 16:35
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
Point是类名。
x = xx ,x 是类的数据成员, xx是构造函数里的变量。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2005-11-23 16:40
knight2003li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-11-23
收藏
得分:0 

谢谢,万分感谢


2005-11-23 18:44
knight2003li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-11-23
收藏
得分:0 

(1)是不是可以把xx和yy变成其他字母,例如p和q?

程序输出的结果:<3,4><6,8>两点之间的距离是:5

(2)是不是将P1(3.0,4.O)中的3.0赋给X,4.0赋给Y?

(3)double Distance(Point &a, Point &b)
{
double dx = a.x - b.x;
double dy = a.y - b.y;
return sqrt(dx*dx+dy*dy);
}

(4)dx=a.x-b.x(程序执行到这里结果是什麽?是dx=3.0.x-4.0.x吗?)


2005-11-23 19:08
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
(1)是不是可以把xx和yy变成其他字母,例如p和q? 可以.
(2)是不是将P1(3.0,4.O)中的3.0赋给X,4.0赋给Y? 是.

(4)dx=a.x-b.x(程序执行到这里结果是什麽?是dx=3.0.x-4.0.x吗?)

为 dx=6.0-3.0 (dx=3.0)


=×&D o I p R e E n C g T l X&×=
2005-11-23 19:21
快速回复:[提问]关于友员函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023176 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved