用C++写一个简单的点(Point)类

2024-11-11 02:52:31
推荐回答(4个)
回答1:

d main() };中的函数名main不对,应该是display(),即:
#include
using namespace std;
struct point{
void setxy(double a,double b) //你这里有打错字了是void不是viod

void display( )

double x,y;
};
void main(){
point a;
a.setxy(10.6,18.5); // 少了分号
a.display( );
cout<}
#include :#include 是包含头文件是用的,这句话就表明这个程序中包含这个头文件;
using namespace std;:是使用(using)命名空间(namespace)std(标准库中的东西都放在std中,这句话表明可以使用std中的一切东西(本程序中只用了std::cout, std::endl 两个);
struct 结构体(在C++中它等同于class<类>,有一个小小的区别就是,不说明访问权限时struct默认的是public,class 默认的是private),这个结构体的名字是point,point中定义了两个成员函数:一个名为setxy,无返回值的函数;一个名为display,无返回值的函数;两个函数数据成员:一个是double x,一个是double y;
接下来的是主函数mian(),主函数中定义了一个point类型的自定义变量a;
a.setxy(10.6, 18.5);表示a调用(point类型对象特有的)函数setxy,从而把10.6赋值给a.x(a的x值),18.5赋值给a.y;
a.display();表示a调用display(),从而把a.x,"\t", a.y, endl输出:即,在黑屏中显示10.6 18.5
cout<你的程序中有很多不好的地方,但是这涉及的东西可能会很多,没法给你说,只能你自己下去看书,上面我已说的非常清楚了,你应该看的明白!
还有,程序的执行入口时main()函数,所以最先执行的是point a;而在这句中用用到point类型,于是就执行struct point类来为a分配内存,是a有效;下来执行a.setxy(10.6, 18.5);这句,上面说了意思了!因为里边没有循环,判断语句,所以他们的执行顺序是从上到下!
另外,站长团上有产品团购,便宜有保证

回答2:

#include
using namespace std;

class Point
{
public:
Point()
{
x=y=0;
}
Point(double _x, double _y)
{
x = _x;
y = _y;
}
Point origin()
{
return Point(0,0);
}
double distance(Point& another)
{
return sqrt((x-another.x)*(x-another.x)+(y-another.y)*(y-another.y));
}
private:
double x,y;
};

回答3:

#include
#include
using namespace std;

class Point
{
public:
Point()
{
x=y=0;
}
Point(double _x, double _y)
{
x = _x;
y = _y;
}
Point origin()
{
return Point(0,0);
}
double distance(Point& another)
{
return sqrt((x-another.x)*(x-another.x)+(y-another.y)*(y-another.y));
}
private:
double x,y;
};

int main()
{ double dis;
Point p1(1,0);
Point p2;

dis = p1.distance(p2);
cout << dis;

}

回答4:

方法有求点要原点坐标和求两点之间坐标??
没懂~~~~~