Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146

    [c++] Problemi tra prototipo e file cpp

    Ho provato a creare una classe con relativo prototipo.
    Ma in fase di compilazione mi da un sacco di errori.

    A.h
    codice:
    //prototipo
    class A{
          public:
                 //costruttore
                 A();
                 //distruttore
                 ~A();
          //public: accessibili da ogni parte del programma entro il campo di validità della classe in oggetto.
          public:
                 int a;
                 int b;
                 int c;
          //protected: accessibili alle funzioni membro appartenenti alla stessa classe e alle classi da questa derivate
          protected:
                    int aa;
                    int bb;
                    int cc;
          //private: accessibili solo alle funzioni membro appartenenti alla stessa classe
          private:
                  int zzz;
                  int yyy;
                  int xxx;
    }
    A.cpp
    codice:
    #include <stdio.h>
    #include "A.h"
    
    //costruttore
    A()
    {
        a = 10;
        b = 20;
        zzz = 3000;
    }
    //distruttore
    ~A()
    {
         printf("Oggetto distrutto!!");
    }
    Potete aiutarmi??
    Quale è il problema??

  2. #2
    modifica il secondo file con
    codice:
    #include <stdio.h>
    #include "A.h"
    
    //costruttore
    A::A()
    {
        a = 10;
        b = 20;
        zzz = 3000;
    }
    //distruttore
    A::~A()
    {
         printf("Oggetto distrutto!!");
    }
    ah.. nel primo file manca il ; alla fine della dichiarazione della classe. Cioè tu hai fatto una cosa tipo
    codice:
    class a { 
        //roba
    }
    mentre dovrebbe essere
    codice:
    class a { 
        //roba
    };

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Ora funziona.
    Ma ora ho un altro problema: non riesco a compilare il main che sta in un altro file.
    codice:
    #include <cstdlib>
    #include <iostream>
    #include "A.h"
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        A a = new A();
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Adesso dove sta il problema??

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Risolto.
    Basta scrivere "A a", e non anche "= new A()".

  5. #5
    Il new puoi usarlo in presenza di un puntatore. Quindi
    codice:
    A *a = new A();
    oppure lo dichiari come una semplice variabile statica e quindi fai
    codice:
    A a;

  6. #6
    Originariamente inviato da codesnippet
    Il new puoi usarlo in presenza di un puntatore. Quindi
    codice:
    A *a = new A();
    Ricordandosi poi di distruggere l'oggetto quando non serve più con
    codice:
    delete a;
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

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.