#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)例子来重现你的问题,以及你在调试器中所做的观察。 –