RISOLTO : Problema con un programmino

di il
6 risposte

RISOLTO : Problema con un programmino

Gentili ragazzi...posto il codice che nn compila ma nn riesco a capire il perche...vi ringrazio anticipatamente x l 'aiuto!

#include <iostream>
using namespace std;

class Punto {

public:
     Punto();
     Punto(double, double);
     ~Punto();

     double getX();
     double getY();
     void setX(double);
     void setY(double);

     Punto sottrazionePunto(Punto&);

private:

     double x;
     double y;
};



Punto::Punto(){x = y = 0.0;}

Punto::Punto(double x_, double y_){x = x_;    y = y_;}

Punto::~Punto(){cout << "Il punto e' stato distrutto" << endl;}

void Punto::setX(double x_){x = x_;}

void Punto::setY(double y_){y = y_;}

double Punto::getX(){return x;}

double Punto::getY(){return y;}

Punto Punto::sottrazionePunto(Punto &p)
{
    Punto risultato;
    risultato.setX(x-p.x);
    risultato.setY(y-p.y);
    return risultato;
}

int main()
{
     Punto p1(5,3);
     Punto p2(7,4);

    cout << "p1 " << p1 << endl;
    cout << "p2 " << p2 << endl;

     Punto sottrazione = p2.sottrazionePunto(p1);
     cout << "p2-p1 = " << sottrazione << endl;

     return 0;
}

6 Risposte

  • Re: RISOLTO : Problema con un programmino

    Ciao,
    non puoi fare
    
    cout << "p1 " << p1 << endl;
    cout << "p2 " << p2 << endl;
    
    se non ridefinisci l'operatore << per la classe Punto.
  • Re: RISOLTO : Problema con un programmino

    Ciao minomic....perdona l'ignoranza ma perchè questa cosa? e se non volessi ridefinere l'operatore << come potrei fare?
  • Re: RISOLTO : Problema con un programmino

    Potresti stampare direttamente la x e la y del punto, alle quali potresti accedere con i metodi get.
  • Re: RISOLTO : Problema con un programmino

    Non potresti postarmi sto pezzettino di codice?grazie mille cmq...
  • Re: RISOLTO : Problema con un programmino

    Per l'overload dell'operatore? Basta fare
    
    #include <iostream>
    using namespace std;
    
    class Punto {
    
    public:
       Punto();
       Punto(double, double);
       ~Punto();
    
       friend ostream& operator<<(ostream& output, const Punto& p);
    
       double getX();
       double getY();
       void setX(double);
       void setY(double);
    
       Punto sottrazionePunto(Punto&);
    
    private:
    
       double x;
       double y;
    };
    
    ostream& operator<<(ostream &output, const Punto& p) {
        output << "(" << p.x << ", " << p.y << ")";
        return output;
    }
    
    Punto::Punto(){x = y = 0.0;}
    
    Punto::Punto(double x_, double y_){x = x_;    y = y_;}
    
    Punto::~Punto(){cout << "Il punto e' stato distrutto" << endl;}
    
    void Punto::setX(double x_){x = x_;}
    
    void Punto::setY(double y_){y = y_;}
    
    double Punto::getX(){return x;}
    
    double Punto::getY(){return y;}
    
    Punto Punto::sottrazionePunto(Punto &p)
    {
        Punto risultato;
        risultato.setX(x-p.x);
        risultato.setY(y-p.y);
        return risultato;
    }
    
    int main()
    {
       Punto p1(5,3);
       Punto p2(7,4);
    
       cout << "p1 " << p1 << endl;
       cout << "p2 " << p2 << endl;
    
       Punto sottrazione = p2.sottrazionePunto(p1);
       cout << "p2-p1 = " << sottrazione << endl;
    
       return 0;
    }
    
    Invece per l'altro metodo è semplicissimo. Qualcosa come
    
    cout << ... << p1.getX() << ... << p1.getY() << ...;
    
  • Re: RISOLTO : Problema con un programmino

    Okok..grazie mille minomic...rinomino il post!!ciao a prestooo
Devi accedere o registrarti per scrivere nel forum
6 risposte