我以前一直以为析构函数的调用顺序是:先调用的函数,也就害死先进行构造函数调用的函数先被析构。但昨天写了几行提示性语句后发现其实不然。应该是反过来的,最后被调用的反而是先进行的析构。(我想这下的认识应该是正确了的吧。)
昨天还遇见了析构和捕捉的问题。一开始编译时只显示了构造函数被调用的提示性语句,敲下回车键后,看见了析构函数被调用的提示语句,但一瞬间就退出了运行程序。我要的效果是再敲下回车键,再退出运行程序。最后发现用对象指针来做就不会这样了。最后使用delete操作符,也就意味着当运行到delete的时候,程序对之前调用的函数全部进行了析构,然后由cin.get()语句进行捕捉,就能看见所有的构造和析构函数调用提示语句。然后敲下回车,退出程序,成功!:Computer* computer = new Computer()
computer->run();
computer->stop();
delete computer;
cin.get();