Ho da poco iniziato a studiare le classi ed ho provato a scrivere questo programmino che gestisce con la classe point dei punti caratterizzati dalle cordinate x, y ed un nome.
L'unico problema che riscontro è nella funzione distance dove vorrei calcolare la distanza tra due punti. Questo è un estratto del codice, dove per l'altro è riscontrato l'errore dal compilatore:
codice:
class point{
int x,y;
string name;
public:
point();
point(int, int);
void initWithValue();
void printPoint();
double distance(point par);
};
point::point(){
x=0;
y=0;
name="Untitled";
}
point::point(int a, int b){
x=a;
y=b;
name="Untitled";
}
void point::initWithValue(){
int a, b;
string n;
cout << "Inserisci il nome del punto: ";
getline(cin, n);
cout << "Inserisci il valore delle ascisse: ";
cin >> a;
cout << "Inserisci il valore delle ordinate: ";
cin >> b;
x=a;
y=b;
name=n;
}
void point::printPoint(){
cout << "Punto: " << name << endl
<< "x: " << x << endl
<< "y: " << y << endl;
}
double point::distance(point par){
if(x.par==x){
if(x.par>=x)
return(x.par-x);
else
return(x-x.par);
}
if(y.par==y){
if(y.par>=y){
return(y.par-y);
}
else
return(y-y.par);
}
else{
return(sqrt((x.par+x)*(x.par+x)+(y.par+y)*(y.par+y)));
}
}
L'errore è il seguente:
codice:
imac-di-Pacio:desktop pacio$ g++ program.cpp -o points
program.cpp: In member function ‘double point::distance(point)’:
program.cpp:56: error: request for member ‘par’ in ‘((point*)this)->point::x’, which is of non-class type ‘int’
program.cpp:57: error: request for member ‘par’ in ‘((point*)this)->point::x’, which is of non-class type ‘int’
program.cpp:59: error: request for member ‘par’ in ‘((point*)this)->point::x’, which is of non-class type ‘int’
program.cpp:61: error: request for member ‘par’ in ‘((point*)this)->point::y’, which is of non-class type ‘int’
program.cpp:62: error: request for member ‘par’ in ‘((point*)this)->point::y’, which is of non-class type ‘int’
program.cpp:63: error: request for member ‘par’ in ‘((point*)this)->point::y’, which is of non-class type ‘int’
program.cpp:66: error: request for member ‘par’ in ‘((point*)this)->point::y’, which is of non-class type ‘int’
program.cpp:69: error: request for member ‘par’ in ‘((point*)this)->point::x’, which is of non-class type ‘int’
program.cpp:69: error: request for member ‘par’ in ‘((point*)this)->point::x’, which is of non-class type ‘int’
program.cpp:69: error: request for member ‘par’ in ‘((point*)this)->point::y’, which is of non-class type ‘int’
program.cpp:69: error: request for member ‘par’ in ‘((point*)this)->point::y’, which is of non-class type ‘int’
Grazie in anticipo dell'aiuto.