#include <iostream>
#include<stdlib.h>
using namespace std;
class test{
public:
test(int a):i(a){
}
int display();
private:
int i;
};
int test::display(){
i;
}
int main() {
test obj(10);
cout<<obj.display();
return 0;
}
W powyższym przykładzie drukowana jest wartość losowa. Ale kiedy zmienił deklarację funkcji jak:Przypadkowo zapomniałem zwrócić wartość z funkcji, ale kiedy zwróciłem referencję w deklaracji funkcji zadziałało. Dlaczego?
int& display();
i definicji, jak:
int& test::display(){
i;
}
ona wyświetlana prawidłowa wartość to 10 nie wiem dlaczego?
Jest to niezdefiniowane zachowanie. Twój kod ma błąd, robi coś nieoczekiwanego. – juanchopanza
Powiązany z [Dlaczego ten fragment kodu C++ kompiluje (funkcja non-void nie zwraca wartości)] (http://stackoverflow.com/q/20614282/1708801) –