2010-07-19 71 views
-6
#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; 
} 
+2

請重新設置代碼的格式。選擇所有內容並按下「代碼」按鈕。另外,給我們一些你正在做什麼和你得到什麼錯誤的解釋。 – Javier 2010-07-19 13:30:36

+0

有人請添加信息問題實際上是關於什麼? – akira 2010-07-19 13:33:28

+4

你認爲它有什麼問題嗎?你甚至試圖編譯它?發生了什麼?你爲什麼認爲這是錯的?你的問題缺乏。 -1 – spender 2010-07-19 13:34:05

回答

1

一件事面向對象爲該線

cout << Line.linelength(); 

應該

cout << ours.length(); 
+1

應該是'ours.length()'; 'linelength'是一個局部變量,而不是函數的名字。 – 2010-07-19 13:35:36

2

你的問題不明確。你的意思是它不能編譯?

嘗試調用功能正常,即

x1 = a.getX(); 

,而不是

x1 = a.getX; 

a.setX(one.getX());

代替

a.setX = one.getX; 

但有可能是更錯...

2
a.setX = one.getX; 
a.setY = one.getY; 
b.setX = two.getX; 
b.setY = two.getY; 

setXgetX是功能,而不是變量。因此,你需要使用它們的方式:

a.setX(one.getX()); 

在未來獲得對這裏的幫助,你就應該給什麼是你的代碼錯誤更多的信息:你得到什麼編譯器錯誤?什麼不工作?你有什麼問題?