Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    0

    [C++] problema con lasse

    Nella funzione main dichiaro:

    Cl *Myclass = new Cl(str_a, str_b, str_c);
    Myclass->funz_a();

    per eseguire la funzione funz_a() della classe Myclass.

    Il file headre della classe CL è:

    class Cl{
    public:
    Cl(string_a,string_b,string_c);
    ~Cl();
    void funz_a();
    ....

    Il file cpp è:

    Cl::Cl(string_a,string_b,string_c)
    {
    ...
    }

    void Cl::funz_a()
    {
    codice non elaborato
    ....
    }
    ------------------------------
    Il mio problema sta nel fatto che non esegue il codice della funzione funz_a()

    perchè:master:

  2. #2
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    e cosa fa?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    0
    Esegue tutto il codice fino alla chiamata alla funzione e si ferma la.
    Ho provato a far iniziare la funzione con un semplice cout..., ma niente...
    Ne ho inserito uno anche subito dopo la chiamata alla funzione e niente
    Praticamente il programma si blocca quando arriva alla chiamata

  4. #4
    Ehm.. dai uno sguardo al costruttore allora, o almeno mostra tutto il codice.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    0
    Il costruttore non fa nulla di interessante, inizializza solo tre variabili dichiarate private nell'header:

    Cl::Cl(string_a,string_b,string_c)
    {
    stra = string_A;
    strb = string_B;
    strc = string_C;
    }
    ---------------------------
    Come vedi nessuna istruzione. Le variabili private le vado poi ad utilizzare in funz_a().
    ? :master:

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    0
    :master:

    Il problema non sta nel fatto che non esegue il codice della funzione ma non crea nemmeno la classe!

    Ho fatto una banale prova inserendo nel costruttore
    cout << "prova";
    e... non compare nulla

    Chi mi aiuta?

  7. #7
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    sinceramente non riesco proprio a capire quale sia il tuo problema e non capisco nemmeno gli argomenti del costruttore??(string_a,string_b,string_c):master:

    cmq un codice del genere non ha errori e funge
    codice:
    //file.h
    #include<iostream>
    #include<string>
    class Cl{
     public:
      string A,B,C;
      Cl(string_a,string_b,string_c):A(a),B(b),C(c){cout<<"sono il costruttore"<<endl;};
      ~Cl(){};
      void funz_a();
    };
    
    void Cl::funz_a(){
      cout<<"funz_a()"<<endl;
    }
    codice:
    //file.cpp
    #include "renzo.h"
    
    main(){
    
      Cl *punt=new Cl("pippo","pluto","papero");
      punt->funz_a();
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    0
    Originariamente inviato da Zalex
    sinceramente non riesco proprio a capire quale sia il tuo problema e non capisco nemmeno gli argomenti del costruttore??(string_a,string_b,string_c):master:

    cmq un codice del genere non ha errori e funge
    codice:
    //file.h
    #include<iostream>
    #include<string>
    class Cl{
     public:
      string A,B,C;
      Cl(string_a,string_b,string_c):A(a),B(b),C(c){cout<<"sono il costruttore"<<endl;};
      ~Cl(){};
      void funz_a();
    };
    
    void Cl::funz_a(){
      cout<<"funz_a()"<<endl;
    }
    codice:
    //file.cpp
    #include "renzo.h"
    
    main(){
    
      Cl *punt=new Cl("pippo","pluto","papero");
      punt->funz_a();
    }
    Ti ringrazio. Il codice che mi hai postato, a grandi linee è molto simile al mio.
    La differenza sta nel fatto che la funzione funz_a la dichiari col suo prototipo nell'header e la scrivi completamente nello stesso (comprensiva di tutto il codice da elaborare). Se faccio così funziona anche il mio. Perchè se lascio nell'header solo il prototipo e la funzione vera e propria la scrivo nel file file.cpp non va?:master:

  9. #9
    Renzo74, po-sta-il-co-di-ce!

  10. #10
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    ma e' la stessa cosa!!

    se metti l'implementazione di funz_a() in un file impl.cpp compili impl.cpp senza lincarlo(g++ -c impl.cpp)

    e poi compili il main.cpp col file oggetto creato in precedenza
    (g++ main.cpp impl.o)
    non mi puoi dire che non funge

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.