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

Veuillez reformater le code. Sélectionnez tout et appuyez sur le bouton "code". En outre, donnez-nous quelques explications sur ce que vous faites et quelle erreur vous obtenez. – Javier

+0

quelqu'un s'il vous plaît ajouter des informations sur ce que la question est réellement sur? – akira

+4

Que pensez-vous qui ne va pas avec? Avez-vous même essayé de le compiler? Qu'est-il arrivé? Pourquoi pensez-vous que c'est faux? Votre question fait défaut. -1 – spender

Répondre

1

Une chose est que la ligne

cout << Line.linelength(); 

doit-elle être

cout << ours.length(); 
+1

Devrait être 'ours.length()'; 'linelength' est une variable locale, pas le nom de la fonction. –

2

Votre question est pas claire. Vous voulez dire qu'il ne compile pas?

essayer d'appeler des fonctions à savoir correctement

x1 = a.getX(); 

au lieu de

x1 = a.getX; 

et

a.setX(one.getX());

au lieu de

a.setX = one.getX; 

mais il y a probablement plus de mal ...

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

setX et getX sont des fonctions, pas les variables. Par conséquent, vous devez les utiliser en tant que tels:

a.setX(one.getX()); 

à l'avenir pour obtenir de l'aide ici, vous devez donner un peu plus d'informations sur ce qui ne va pas avec votre code: quelles erreurs compilateur vous obtenez? Qu'est-ce qui ne fonctionne pas? avec quoi avez-vous des problèmes?