2010-07-19 4 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

+0

누군가 질문에 대한 정보를 실제로 추가 하시겠습니까? – akira

+4

뭐가 잘못됐다고 생각하니? 심지어 컴파일하려고 했습니까? 어떻게 된 거예요? 왜 그게 잘못이라고 생각하니? 귀하의 질문은 부족합니다. -1 – spender

답변

1

한 가지 프로그래밍 객체 지향 연습하고하면 라인

cout << Line.linelength(); 

cout << ours.length(); 
+1

'ours.length()'이어야합니다; 'linelength'는 함수의 이름이 아닌 지역 변수입니다. –

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()); 

여기에 도움을 받고의 미래, 당신은 당신의 코드에 어떤 문제가 있는지에 좀 더 많은 정보를 제공해야한다 : 당신이지고 어떤 컴파일러 오류? 작동하지 않는 것은 무엇입니까? 너는 무슨 문제가 있니?

관련 문제