Ho imparato C++ e ho trovato variabili statiche (ho conoscenza precedente da C89), e nella risorsa che sto usando, hanno dichiarato una variabile statica in una classe come:Inizializzazione variabile statica per le classi in C++, perché includere il tipo di dati?
class nameHere
{
public:
static int totalNum;
}
int nameHere::totalNum = 0;
int main()
{}
Per esempio. Quello che non capisco è che, dal momento che ho già dichiarato che la variabile statica è un numero intero nella definizione della classe, perché devo dichiararlo anche come numero intero al di fuori della definizione della classe? sarebbe alcun senso per inizializzare semplicemente in questo modo:
nameHere::totalNum = 0;
int main()
{}
C'è un motivo particolare o semplicemente una convenzione di C++? Grazie per tutto l'aiuto!
Probabilmente lo stesso motivo non si può dire 'SomeClass :: someMemberFunction {...}' per definire un funzione membro. – chris
Vieni a pensarci, potrebbe alleggerire un po 'la sintassi ed evitare quegli errori fastidiosi che sorgono da un errore di battitura o da un identificatore mancante, ma nel caso delle funzioni, almeno, può essere utile mettere 'const' sul valore parametri nella definizione, ma non dichiarazione, anche se potrei abituarmi a fare quest'ultimo se questa sintassi fosse un'opzione. – chris
complicherebbe ulteriormente la grammatica. Esiste già una dichiarazione/espressione di ambiguità, questo porterebbe anche oltre. – Angew