|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2005
Messaggi: 296
|
Interfacce in C++
ciao,vorrei sapere come si fa in C++ a creare un'interfaccia che contenga solamente costanti intere,ad esempio in Java si potrebbe fare così:
Codice:
public interface Constants {
static final int c1 = 1;
static final int c2 = 2;
...
}
e in C++ come si fa?? ho provato questo,con visual c++, Codice:
class Constants {
public:
static const int c1 = 1;
...
};
cioè il compilatore crede che io stia dichiarando una funzione pura (cioè non implementata,come quelle delle interfacce java) mentre invece sto dichiarando una variabile come si fa? |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
eh, mi sa che non puoi ^_^
in C++ penso che non puoi inizializzare le variabili dentro la classe; l'unica soluzione che vedo è dichiarare la costante al di fuori o con const o con un #define; se il nome va a collidere usa un un namespace oppure usa una nomenclatura più specifica. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Le interfacce in C++ sono classi astratte con tutte funzioni virtuali pure...
Codice:
class interfaccia
{
public:
static const int prova;
interfaccia() {};
int getX() = 0;
int setX(int x) = 0;
}
const int interfaccia::prova = 0;
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ah vero, non avevo pensato che poteva inizializzarla fuori dalla classe
troppo tempo col Java e col C mi ha fatto dimenticare il C++ @GordonFreeman: poi per riferirti alla costante non devi fare NomeInterfaccia.NomeCostante come in Java, devi usare i due punti: Codice:
int lol = NomeInterfaccia::NomeCostante; Ultima modifica di 71104 : 14-02-2006 alle 01:49. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2005
Messaggi: 296
|
si si lo so,quando mi riferisco a un membro statico di classe devo usare i due punti
ok grazie mille |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:35.



















