1. 程式人生 > >析構函數的調用與return語句

析構函數的調用與return語句

truct info pri com mes 次數 return語句 clu 暫時

老師在課堂上講到了return語句在執行時會自動調用對象的析構函數。我編寫了下述代碼測試發現整個程序析構函數調用次數與構造函數不等,這樣難道不會產生內存泄漏嗎?

源代碼如下:

#include <iostream>
using namespace std;

class A {
public:
A(int i = 1) :x(i){ cout << "constructed." << endl; }
~A() { cout << "destructed." << endl; }
int get_x() { return x; }
private:
int x;
};

int aqr_it(A a) {
A b=a;
return (b.get_x())*(b.get_x());
}

int main() {
A a;
cout << a.get_x() << endl;
cout << aqr_it(a) << endl;
return 0;
}

程序運行結果:

技術分享圖片

暫時不知道如何解釋該現象。

析構函數的調用與return語句