Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++] classi

  1. #1

    [C++] classi

    Mi sto cimentando per la prima volta ad utilizzare la tecnica di programmazione ad oggeti, creando una semplice classe che dovrebbe effettuare la somma e la differenza di due numeri complessi.
    Ecco la clase ed il codice:

    #ifndef COMPLEX_H
    #define COMPLEX_H

    class Complex {
    public:
    Complex ( float , float );
    ~Complex ( );
    void setComplx ( float , float );
    float getReal ( );
    float getImm ( );
    void somma ( Complex , Complex );
    void differ ( Complex , Complex );
    void stampaSomma ( );
    void stampaDiffer( );

    private:
    float real;
    float Imm;

    };

    #endif

    Sorgente:

    #include "Complex.h"
    #include <iostream.h>
    #include <stdlib.h>

    Complex::Complex( float re , float im )
    { setComplex ( 0.0 , 0.0 ); }

    void Complex::setComplex ( float r , float i )
    {
    Real = r;
    Imm = i;
    }

    float Complex::getReal( )
    { return Real; }

    float Complex::getImm( )
    { return Imm; }

    void Complex::somma( Complex a , Complex b )
    {
    Real = a.getReal( ) + b.getReal( );
    Imm = a.getImm( ) + b.getImm( );
    }

    void Complex::differ ( Complex a , Complex b )
    {
    Real = a.getReal( ) - b.getReal();
    Imm = a.getImm( ) - b.getImm( );
    }

    void stampaSomma( )
    {
    cout << " La somma dei due numeri complessi e': "
    << Real << ", i" << Imm << endl;
    }

    void stampaDifferenza( )
    {
    cout << " La differenza dei due numeri complessi e': "
    << Real << ", i" << Imm << endl;
    }

    Complex::~Complex( )

    system("PAUSE");
    return 0;

    Tralasciando gli eventuali errori di logica perchè mi da errore di sintassi ogni volta che uso l'operatore binario di risoluzione dello scope cioè (:

    Uso dev c++ 4.0

    GHrazie anticipatamente!!!!

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Sono tanti piccoli errori che hai fatto...

    codice:
    #ifndef COMPLEX_H 
    #define COMPLEX_H 
    
    class Complex { 
    public: 
    Complex ( float , float ); 
    ~Complex ( ); 
    
    //Hai dimenticato la "e"!
    //void setComplx ( float , float ); 
    //giusto
    void setComplex ( float , float ); 
    float getReal ( ); 
    float getImm ( ); 
    void somma ( Complex , Complex ); 
    void differ ( Complex , Complex ); 
    void stampaSomma ( ); 
    void stampaDiffer( ); 
    
    private: 
    //Attento!!!
    //la "r" deve essere maiuscola!!
    float real; 
    float Imm; 
    
    }; 
    
    #endif 
    
    Sorgente: 
    
    #include "Complex.h" 
    #include <iostream.h> 
    #include <stdlib.h> 
    
    Complex::Complex( float re , float im ) 
    { setComplex ( 0.0 , 0.0 ); } 
    
    void Complex::setComplex ( float r , float i ) 
    { 
    Real = r; 
    Imm = i; 
    } 
    
    float Complex::getReal( ) 
    { return Real; } 
    
    float Complex::getImm( ) 
    { return Imm; } 
    
    void Complex::somma( Complex a , Complex b ) 
    { 
    Real = a.getReal( ) + b.getReal( ); 
    Imm = a.getImm( ) + b.getImm( ); 
    } 
    
    void Complex::differ ( Complex a , Complex b ) 
    { 
    Real = a.getReal( ) - b.getReal(); 
    Imm = a.getImm( ) - b.getImm( ); 
    } 
    
    //Devi definirla come un membro usando ::
    void Complex::stampaSomma( ) 
    { 
    cout << " La somma dei due numeri complessi e': " 
    << Real << ", i" << Imm << endl; 
    } 
    
    //Devi definirla come un membro usando ::
    
    // e poi prima l'hai dichiarata come "stampaDiffer"
    //sbagliato:
    //void Complex::stampaDifferenza( ) 
    //giusto:
    void Complex::stampaDiffer( ) 
    
    { 
    cout << " La differenza dei due numeri complessi e': " 
    << Real << ", i" << Imm << endl; 
    } 
    
    Complex::~Complex( ) 
    //Le parentesi graffe
    {
    system("PAUSE"); 
    //Niente return perchè
    // i distruttori e costruttori non possono restituire valori
    //return 0; 
    }
    Dovrebbe funzionare... :metallica

  3. #3
    Avevo notato anch'io la e mancante e qualche altra cosa, ho effettuato le modifiche ma il risultato non cambia; sempre stesso errore Line 5: syntax error before '::' e così via per la 8 ecc. ecc.
    è questo l'errore che non capisco

  4. #4
    Tutto apposto "scusa" ho sbagliato io ho salvato la classe con l'estensione cpp invece che .h adesso funziona tutto!!!

    Grazie per i consigli!!!
    ------------------
    Non dire gatto! se non l'hai nel sacco!!!
    ------------------

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.