![]() |
#2
TonyDeng2016-03-10 21:22
|

#include<iostream.h>
#include<math.h>
class Point
{
private:
int x1;
int y1;
int x2;
int y2;
float e;
public:
float Distance(int a,int b,int c,int d);
};
float Point::Distance(int a,int b,int c,int d)
{
/* x1=a;
y1=b;
x2=c;
y2=d;*/
e=sqrt((a-c)*(a-c)+(b-d)*(b-d));//还有一种写法是把注释号去掉,把abcd换成x1x2y1y2,一样能运行,只是私有成员的存在好像可有可无啊
return e;
}
void main()
{
int A1,B1,A2,B2;
float E;
Point P1;
cout<<"x1=";
cin>>A1;
cout<<"y1=";
cin>>B1;
cout<<"x2=";
cin>>A2;
cout<<"y2=";
cin>>B2;
E=P1.Distance(A1,B1,A2,B2);
cout<<"两点之间的距离为:"<<E<<endl;
}
上面的代码是能够成功运行的,但老是说类的关键的一点在于外界函数是不能够调用它的(私有)成员的,只有成员函数才可调用,但我这段程序里面好像没有用到私有成员欸,他们的存在好像毫无意义,可以改一下,改成好像必须用到私有成员吗? #include<math.h>
class Point
{
private:
int x1;
int y1;
int x2;
int y2;
float e;
public:
float Distance(int a,int b,int c,int d);
};
float Point::Distance(int a,int b,int c,int d)
{
/* x1=a;
y1=b;
x2=c;
y2=d;*/
e=sqrt((a-c)*(a-c)+(b-d)*(b-d));//还有一种写法是把注释号去掉,把abcd换成x1x2y1y2,一样能运行,只是私有成员的存在好像可有可无啊
return e;
}
void main()
{
int A1,B1,A2,B2;
float E;
Point P1;
cout<<"x1=";
cin>>A1;
cout<<"y1=";
cin>>B1;
cout<<"x2=";
cin>>A2;
cout<<"y2=";
cin>>B2;
E=P1.Distance(A1,B1,A2,B2);
cout<<"两点之间的距离为:"<<E<<endl;
}