Quando aggiungo questo codice in cpp esistente con uno dei miei implementazione della classeNessuna inizializzazione globale variabile
#include <iostream>
struct TestStruct{
TestStruct(int i)
{
std::cerr << i << std::endl;
x = i;
}
int x;
};
TestStruct t(8);
Esso stampa 8 prima main
eseguito.
Ma quando ho creato il nuovo file vuoto test.cpp e inserito lo stesso codice, non è stato stampato nulla. Ho controllato che questa cpp fosse compilata e collegata. Tutti i file cpp sono compilati come lib statico e quindi questa lib con main.o collegato nel file eseguibile. Io uso g ++ 5.3 l'unica opzione è -std=C++14
.
Perché nel secondo caso l'inizializzazione della variabile globale è mancata?
Correggi i tuoi errori di battitura e qual è la differenza tra il tuo caso 1 e il caso 2? –
Il primo caso nel cpp con altro codice grande e il secondo caso nel nuovo file –