#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;
}
Trong trường hợp trên, một số giá trị ngẫu nhiên được in. Nhưng khi tôi thay đổi tuyên bố chức năng như:Chắc chắn tôi quên trả về giá trị từ hàm nhưng khi tôi trả về tham chiếu trong khai báo hàm thì nó đã hoạt động. Tại sao?
int& display();
và định nghĩa như sau:
int& test::display(){
i;
}
Nó hiển thị giá trị chính xác tức là 10 Tôi không biết tại sao?
Hành vi không xác định. Mã của bạn có một lỗi, nó làm một cái gì đó bất ngờ. – juanchopanza
Liên quan đến [Tại sao biên dịch đoạn mã C++ này (hàm không rỗng không trả về một giá trị)] (http://stackoverflow.com/q/20614282/1708801) –