linux c++ 析构函数 new创建类的理解

程序只不过是一些指令的集合,cpu也就跟据pc顺序执行批令,遇到跳转的指令就跳转,那么为什么c++有这么多类的概念?

今天编写Agm主控程时突然间想知道这个问题,主尝试去理解了一下下面二程情形;

1,CMyClass myclass;

这样的语句,c++编译成批令应该,先在堆载在创建这个类(其实也是跟结构体一样吧!).然后跳转到构造函数,当函数退出时,再执行析构函数;

2,CMyClass *myclass = new CMyClass;

delete myclass;

先动态分配出类所需要的内存,再跳到构造函数执行,执行delete,先执行类的析造函数,再释放内存.

 

我开始担心,用new创建对象后,程序异常退出时,类的析构函数不会被执行.那么内存会不会被释放?最后知道进程退出后,操作系统会自动清除内存.

你可能感兴趣的:(linux c++ 析构函数 new创建类的理解)