Ostatnio przez przypadek zainicjowałem zmienną w destruktorze, zamiast w konstruktorze. Czy mógłby mi ktoś wytłumaczyć, dlaczego program skompilowany na Windowsie x64 w Visual Studio wyświetlał prawidłową wartość (czy to przypadek, że tak jakby inicjował value
wartością 0
), a program skompilowany na linuxie g++ wskazywał wartości jakieś randomowe?
class MyClass {
int value;
public:
MyClass() {};
~MyClass() {value = 0;}
void show() {std::cout << ++value;}
};