http://www.cnblogs.com/skynet/p/3372855.html
http://www.cnblogs.com/skynet/p/3343726.html
1.程序使用内存区
一个程序占用的内存区一般分为5种:
(1)全局、静态数据区:存储全局变量及静态变量(包括全局静态变量和局部静态变量)
(2)常量数据区:存储程序中的常量字符串等。
(3)代码区:存储程序的代码。
(4)栈:存储自动变量或者局部变量,以及传递的函数参数等。
(5)堆:存储动态产生的数据。
在处理内存时,系统会自动将内存对齐,这样虽然会浪费一些内存,但由于CPU在对齐方式下运行比较快,所以
一般都是对程序性能还是有好处的。
c++中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。
一.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。
二.静态数据成员被提取出来放在程序的静态数据区内,为该类所有对象共享,因此只存在一份。
三.静态和非静态成员函数最终都被提取出来放在程序的代码段中并为该类所有对象共享,因此每一个成员函数也只能存在一份代码实体。在c++中类的成员函数都是保存在静态存储区中的,那静态函数也是保存在静态存储区中的,他们都是在类中保存同一个惫份。
因此,构成对象本身的只有数据,任何成员函数都不隶属于任何一个对象,非静态成员函数与对象的关系就是绑定,绑定的中介就是this指针。成员函数为该类所有对象共享,不仅是处于简化语言实现、节省存储的目的,而且是为了使同类对象有一致的行为。同类对象的行为虽然一致,但是操作不同的数据成员。