#include <iostream>
using namespace std;
class programming {
protected: int variable;
public:
programming() {
cout << "In constructor\n";
input_value();
}
~programming() {
cout << "In destructor\n";
output_value();
}
void input_value() {
cout << "In function input_value\n";
variable = 100;
}
void output_value() {
cout<< "Variable is "<< variable << "\n";
}
void onemorefunction() {
if(variable%2) {
cout << "Variable is odd\n";
}
else cout << "Variable is even\n";
}
};
int main(int argc, char *argv[]) {
programming object;
object.onemorefunction();
return 0;
}
當上述程序運行它輸出:爲什麼我的C++程序輸出這個?
In constructor In function input_value Variable is even In destructor Variable is 100
我新的C++和我有困難,爲什麼它打印所有這些線路出來。我認爲它不會打印任何東西,因爲只有一個多功能函數被調用,就是這樣。任何幫助表示讚賞。謝謝!
析構函數總是在對象的生存期結束時調用。在這種情況下,當程序終止時,'object's的生命期結束。 – UnholySheep
*部分輸出很難理解?你確實知道對象的生命週期,以及它們是如何被構造和被破壞的? –
解決這些問題的正確工具是您的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,你應該[編輯]你的問題,以包含一個[Minimal,Complete,and Verifiable](http://stackoverflow.com/help/mcve)例子來重現你的問題,以及你在調試器中所做的觀察。 –