我知道这个问题已经被提出了几次,但我正在尝试得到关于上述问题的确定性答案,但我一直遇到矛盾的信息。我需要知道的是,当我使用exit()时,基本类对象是否被销毁。我知道动态内存需要被删除,但我的意思更像是:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
class employee
{
public:
employee ();
string name;
~employee();
};
employee::employee ()
{
name = "bob";
}
employee::~employee()
{
cout << "Object destroyed" << endl;
}
int main()
{
employee emp1;
exit(1);
cout << "Hello" << endl;
}
现在如果我从主函数中删除exit(1),那么“Object destroyed”和“Hello”会按预期打印出来。但是,如果将其留在那里,两者都不会被打印。对于“Hello”的原因很明显,但我认为emp1仍然会被销毁,但析构消息没有显示...
我正在查看this link,它提到了静态对象被销毁的问题。那么上述对象是否被视为静态对象?
如果不是,则有没有一种方法可以使程序终止而不会影响内存?我的项目围绕用户输入展开,我试图提供一个选项,如果用户输入单词“exit”,则退出。
if(input_var == "exit")
{
cout << "You have chosen to exit the program." << endl;
exit(1);
}
这只是我意图的粗略示例。