Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - includere file cpp
Forum - C/C++ - includere file cpp - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
skip (Normal User)
Newbie


Messaggi: 16
Iscritto: 25/02/2009

Segnala al moderatore
Postato alle 21:19
Giovedì, 26/02/2009
...piccolo esempio?

Ultima modifica effettuata da skip il 26/02/2009 alle 21:19
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:29
Giovedì, 26/02/2009
Testo quotato

Postato originariamente da skip:

...piccolo esempio?



Beh ... dipende dalla situazione ... ad esempio, se dovessi aggiungere un altro include in cui, per vari motivi, inserire

bye.h
Codice sorgente - presumibilmente C/C++

  1. #include "ciao.h"



e ciao.h diventasse

Codice sorgente - presumibilmente C/C++

  1. void ciao();
  2.  
  3. struct struttura {
  4.     int x;
  5. };



e in ciao.cpp inserissi
Codice sorgente - presumibilmente C/C++

  1. #include "ciao.h"
  2. #include "bye.h"
  3.  
  4. ...



allora avresti problemi senza quella define.

PM Quote
Avatar
skip (Normal User)
Newbie


Messaggi: 16
Iscritto: 25/02/2009

Segnala al moderatore
Postato alle 21:39
Giovedì, 26/02/2009
ok :asd::asd: Grazie

Ultima modifica effettuata da skip il 26/02/2009 alle 22:04
PM Quote
Avatar
skip (Normal User)
Newbie


Messaggi: 16
Iscritto: 25/02/2009

Segnala al moderatore
Postato alle 22:15
Giovedì, 26/02/2009
ho capito
in pratica  non dava errore  perchè dentro c'era solo la dichiarazione della funzione sensa nessuna variabile, struct o altra cosa dentro il sorgente ciao.h
infatti appena dichiaro una variabile( ad esempio int x=0;) e inserisco 2 volte #include "ciao.h" da errore

perchè


void Stampa(void);

int n=0;


void Stampa(void);

int n=0;

istanzia due volte la stessa variabile il che non è possibile
invece a quanto pare si può dichiarere più volte un funzione,
sembra passare inosservata xke è solo un dichiarazione o NON un Definizione


OK

Ultima modifica effettuata da skip il 26/02/2009 alle 22:22
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:17
Giovedì, 26/02/2009
Fai attenzione pero' ... le variabili NON le devi definire nei .h ma nei .cpp

PM Quote
Avatar
skip (Normal User)
Newbie


Messaggi: 16
Iscritto: 25/02/2009

Segnala al moderatore
Postato alle 22:20
Giovedì, 26/02/2009
si, per il principio di buona programmazione

PM Quote
Avatar
skip (Normal User)
Newbie


Messaggi: 16
Iscritto: 25/02/2009

Segnala al moderatore
Postato alle 22:28
Giovedì, 26/02/2009
aspe....è perche no? ki me lo vieta?

E' buona norma di programmazione inserire la definizione di una classe in un file header  anche se non è indispensabile. Tutte le implementazioni dei metodi della classe andranno, invece, inseriti nel file con estensione cpp.

se inserisco le direttive descritte prima nn succede nulla, e le variabili nell'header vengono definite una volta sola

Ultima modifica effettuata da skip il 26/02/2009 alle 22:52
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 11:28
Venerdì, 27/02/2009
Testo quotato

Postato originariamente da skip:

aspe....è perche no? ki me lo vieta?

E' buona norma di programmazione inserire la definizione di una classe in un file header  anche se non è indispensabile. Tutte le implementazioni dei metodi della classe andranno, invece, inseriti nel file con estensione cpp.

se inserisco le direttive descritte prima nn succede nulla, e le variabili nell'header vengono definite una volta sola



in teoria si, e probabilmente il compilatore non ti dice niente, ma per una questione di ordine e' bene avere negli header solo le definizioni ( tipi, classi, costanti, ecc..., al limite variabili statiche ), ossia tutto cio' che presumibilmente deve essere condiviso da piu' file, mentre tutte le dichiarazioni di variabili e le implementazioni e' bene che stiano nei file cpp.
Anche perche' si potrebbe generare confusione; se per esempio dichiaro una variabile x in un header, che poi includo separatamente in due file cpp dello stesso progetto, con l'intenzione di avere un'unica variabile x condivisa tra i due file, mi ritrovero' invece a replicare localmente ai due file la dichiarazione di x, per cui mi ritrovero' con due variabili x ognuna locale per uno dei due file.
Spero di essere stato abbastanza chiaro.

Luigi

Ultima modifica effettuata da gigisoft il 27/02/2009 alle 11:30
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo