#include <iostream>
#include <math.h>
using namespace std;
class Point{
public:
Point(int xx, int yy);
~Point();
int getX();
int getY();
void setX(int xx){ x = xx; }
void setY(int yy){ y = yy;}
private:
int x;
int y;
};
Point::Point(int xx, int yy)
{
x = xx;
y = yy;
}
Point::~Point()
{
}
int Point::getX()
{
return x;
}
int Point::getY()
{
return y;
}
class Line
{
public:
Line(Point one, Point two);
~Line();
float length();
private:
Point a;
Point b;
};
Line::Line(Point one, Point two)
{
a.setX = one.getX;
a.setY = one.getY;
b.setX = two.getX;
b.setY = two.getY;
}
float Line::length()
{
int x1,y1,x2,y2;
float linelength;
x1 = a.getX;
y1 = a.getY;
x2 = b.getX;
y2 = b.getY;
linelength = ((x2-x1)*(x2-x1)) + ((y2-y1)*(y2-y1));
linelength = sqrtf(linelength);
return linelength;
}
int main()
{
Point mine(1,1);
Point yours(2,2);
Line ours(mine, yours);
cout << Line.linelength();
return 0;
}
答案 0 :(得分:2)
你的问题不明确。你的意思是它不能编译?
尝试正确调用函数,即
x1 = a.getX();
而不是
x1 = a.getX;
和
a.setX(one.getX())
;
而不是
a.setX = one.getX;
但可能还有更多错误......
答案 1 :(得分:2)
a.setX = one.getX;
a.setY = one.getY;
b.setX = two.getX;
b.setY = two.getY;
setX
和getX
是函数,而不是变量。因此,您需要使用它们:
a.setX(one.getX());
在将来获得这方面的帮助时,您应该提供一些有关代码错误的更多信息:您获得了哪些编译器错误?什么不起作用?你有什么问题?
答案 2 :(得分:1)
有一点是该行
cout << Line.linelength();
应该是
cout << ours.length();