Visualizzazione dei risultati da 1 a 8 su 8

Discussione: classi in c++

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312

    classi in c++

    Salve,
    qualcuno gentilmente può dirmi come strutturare una classe in c++? Io in java inserivo tutti i metodi della classe all'interno di essa. In rete però noto che in genere si chiude la classe col ; e poi i metodi si mettono successivamente e nell'header si mettono le definizioni... anche il costruttore? Perchè a questo punto avrebbe più senso includere la classe in un ipotetico terzo file anzichè l'header... Se qualcuno può postare un tipico esempio... Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Si chiude la classe con un ; perchè lo richiede la sintassi del c++, in quanto chiude la dichiarazione di un tipo.

    Il codice delle dichiarazioni deve essere disponibile al preprocessore quando viene fatto l'include: il file header deve quindi essere in chiaro, mentre l'implementazione può anche essere precompilata. Per ridistribuire una libreria di cui non si vuole rendere pubblico il codice si può quindi precompilare il file con le definizioni e distribuire l'header in chiaro.
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Si ok ma l'implementazione dei metodi va fatta all'interno della classe, nello stesso file della classe ma dopo il ; oppure in un file separato? L'header deve quindi contenere pure le dichiarazioni dei costruttori e distruttori?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da lio.b
    Si ok ma l'implementazione dei metodi va fatta all'interno della classe, nello stesso file della classe ma dopo il ; oppure in un file separato? L'header deve quindi contenere pure le dichiarazioni dei costruttori e distruttori?
    Ma leggere una guida?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Sto leggendo delle guide e mi son sorti alcuni dubbi.
    Da quel che ho capito le funzioni le posso implementare o direttamente nella classe (così facendo son rese direttamente inline) oppure fuori applicando l'operatore di visibilità ::
    Molti esempi in rete però le implementazioni le mettono dopo la definizione della classe ma sempre all'interno dello stesso file; la mia domanda è, che senso ha?
    A mio avviso sarebbe meglio creare la classe e le definizioni di variabili e funzioni in un file e le implementazioni in un altro...sbaglio?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Beh, il senso potrebbe essere quello di eliminare l'inline automatico. Ma, e mi sembra molto più probabile, credo che sia solo che nella guida ti scrivono tutto il codice in un blocco unico, senza dividerlo in più file, e quindi tu lo vedi come uno solo...
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Ok grazie. Quindi come la vedo io è giusto? Mettendo nella classe solo le definizioni (quindi è un file header.h) e nell'altro tutte le implementazioni?
    Ciao e grazie

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Esatto. Fanno eccezione i template non specializzati, nei quali è obbligatorio che dichiarazione e definizione siano nello stesso file, e le funzioni inline.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

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.