Il linker non va...
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 3 di 3

Discussione: Il linker non va...

Cambio titolo
  1. #1
    Aspirant Engineer L'avatar di Tha Doctor
    Registrato il
    01-06
    Località
    L'Aquila, Italy
    Messaggi
    1.472

    Il linker non va...

    Salve a tutti, come da titolo il linker del mio compilatore Dev C++ ha deciso di abbandonarmi alla mia prima classe in cui ho separato interfaccia, implementazione e codice client. Non riesco a trovare l'errore, ma Dev su questo è chiaro "Undefined Reference"! Fatto sta che header, implementazione e client sono nella stessa cartella. Sperando possiate aiutarmi ve lo posto, è un esercizio preso da un libro per una classe Account:

    Account.h
    Spoiler:
    #include <iostream>

    class Account
    {
    public:
    Account( int );
    void setSaldo( int );
    int getSaldo ();
    void credit( int );
    void debit( int );
    void getBalance();
    private:
    int saldo;
    };

    Account.cpp
    Spoiler:
    //Account.cpp definizione delle funzioni membro

    #include <iostream>
    using std::cin;
    using std::cout;
    using std::endl;

    #include "Account.h"

    //Creatore
    Account::Account( int saldoCorrente )
    {
    setSaldo(saldoCorrente);
    }

    //Imposta un valore del dato membro, controllando che il valore immesso
    //sia maggiore di zero.
    void Account::setSaldo( int saldoCorrente )
    {
    if(saldoCorrente>=0)
    saldo=saldoCorrente;
    else
    cout<<"Valore non valido perchè inferiore di zero!"<<endl;
    }

    //Permette di recuperare il saldo corrente.
    int Account::getSaldo ()
    {
    return saldo;
    }

    //Aggiunge un importo al saldo corrente.
    void Account::credit( int somma )
    {
    saldo=saldo+somma;
    }

    //Detrae un importo dal saldo corrente.
    void Account::debit( int quantità)
    {
    if(quantità<=saldo)
    saldo=saldo-quantità;
    else
    cout<<"L'importo richiesto è superiore alla propria disponibilità!"<<endl;
    }

    //Visualizza il saldo corrente.
    void Account::getBalance()
    {
    cout<<"Il suo saldo attuale è: "<<saldo<<endl;
    }

    E infine il programma di prova della classe:
    Spoiler:
    #include <iostream>
    using std::cin;
    using std::cout;
    using std::endl;

    #include "Account.h"

    int main()
    {
    int soldi;
    cout<<"Prova classe Account.h, prego inserire un saldo di apertura conto: ";
    cin>>soldi;

    Account conto1(soldi);

    cout<<"Il bilancio attuale è di: "<<conto1.getSaldo()<<endl;

    cout<<"Inserire una quantità di denaro da prelevare: ";
    cin>>soldi;
    cout<<endl;
    conto1.debit(soldi);
    conto1.getBalance();

    cout<<"Inserire una quantità di denaro da accreditare: ";
    cin>>soldi;
    cout<<endl;
    conto1.credit(soldi);
    conto1.getBalance();

    return 0;
    }


    Potreste aiutarmi??? Grazie in anticipo
    Ultima modifica di Tha Doctor; 4-03-2011 alle 15:28:17
    "Attach additional responsibilities to an object dynamically."

  2. #2
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    Io ti dico che le definizioni di debit e getBalance sono errare (il void va all'inizio della riga) ma tu leva fregnacce come system(pause)

  3. #3
    Aspirant Engineer L'avatar di Tha Doctor
    Registrato il
    01-06
    Località
    L'Aquila, Italy
    Messaggi
    1.472
    Citazione devilheart Visualizza Messaggio
    Io ti dico che le definizioni di debit e getBalance sono errare (il void va all'inizio della riga) ma tu leva fregnacce come system(pause)
    Si, l'errore l'avevo notato e corretto poco dopo il post, ma quei due mi sono sfuggiti comunque l'errore si presenta di nuovo, system("PAUSE") l'ho lasciato per fermare la visualizzazione quando eseguo da dev, mi sono letto la discussione in top del forum...basta eseguire da prompt. Comunque non capisco perchè mi continui a dare errore...

    EDIT: problema risolto aggiungendo tutti i file a un progetto "Console Application"
    Ultima modifica di Tha Doctor; 4-03-2011 alle 16:12:41
    "Attach additional responsibilities to an object dynamically."

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •