|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Registered User
Iscritto dal: Aug 2006
Messaggi: 305
|
[c++] NAMESPACE? come si usa?
ho un file.h
Codice:
#include... ..... BEGIN_NAMESPACE_PROVA .... class classe_prova{ ... } .... END_NAMESPACE_PROVA .... Codice:
#include <file.h> ... int main(){ ... return 0; } Da quanto ho capito devo usare ancora BEGIN_NAMESPACE_PROVA anche nel file.cpp... Qualcuno sa spiegarmi come funziona questo BEGIN_NAMESPACE? come si chiama? è una macro? Dove trovo documentazione a riguardo? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non si usano così i namespace in C++. Quel BEGIN_NAMESPACE_PROVA magari è una macro che apre il namespace prova.
|
![]() |
![]() |
![]() |
#3 |
Registered User
Iscritto dal: Aug 2006
Messaggi: 305
|
boh... io fatto delle prove...
se io scrivo file.h: Codice:
BEGIN_NAMESPACE_PROVA void mia_funz(void){...} END_NAMESPACE_PROVA Codice:
#include "file.h" BEGIN_NAMESPACE_PROVA int main(){ mia_funz(); } END_NAMESPACE_PROVA Comunque ora ho scoperto che esiste anche USING NAMESPACE_PROVA e sembra essere la cosa più corretta e pare funzionare |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ripeto BEGIN_NAMESPACE_PROVA deve essere una qualche macro definita altrove, non esiste una sintassi del genere in C++.
I namespace si usano così: Codice:
namspace prova { int f(int i) { }; } Codice:
using prova::f; f(1234); |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
![]() In ogni caso, Barbalbero, in C++ il modo corretto di risolvere un namespace è mediante l'operatore "quattro punti ::". Nel tuo caso tralaltro si pone il problema del vero nome del namespace, visto che non abbiamo informazioni sul se si chiama Prova, prova, PROVA... Ah, se non l'avessi ancora capito, questa sintassi non fa parte del C++ ma è stata ideata e realizzata, tramite opportune direttive al preprocessore, da chi ha scritto quegli header. L'unico motivo che mi viene in mente è di rendere il proprio codice brutto, incomprensibile e molto difficile da utilizzare per altri ![]()
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:55.