首页 相关文章 深度探索C++对象模型(9)

深度探索C++对象模型(9)

介绍
  
  当编译一个C++程序时,计算机的内存被分成了4个区域,一个包括程序的代码,一个包括所有的全局变量,一个是堆栈,还有一个是堆(heap),我们称堆是自由的内存区域,我们可以通过new和delete把对象放在这个区域。你可以在任何地方分配和释放自由存储区。但是要注重因为分配在堆中的对象没有作用域的限制,因此一旦new了它,必须delete它,否则程序将崩溃,这便是内存泄漏。(C#已经通过内存托管解决了这一令人头疼的问题)。C++通过new来分配内存,new的参数是一个表达式,该表达式返回需要分配的内存字节数,这是我以前把握的关于new的知识,下面看看通过这本书,使我们能够更进一步的了解到些什么。   这一章主要是说Runtime Semantics执行期语义学。  这是我们平时写的程序片段:
  Matrix identity; //一个全局对象
  Main()
  {
  Matrix m1=identity;
  ……
  return 0;
  }  很常见的一个代码片段,雷神从来没有考虑过identity如何被构造,或者如何被销毁。因为它肯定在Matrix m1=identity之前就被构造出来了,并且在ma...[ 查看全文 ]

2016-02-19 标签:

深度探索C++对象模型(9)的相关文章

手机页面
收藏网站 回到头部