C++类对象的成员变量存储在哪? 在C++中,类和结构体区别只是在默认权限上,所以成员变量存储的位置时一样的; 首先,对象的成员方法是不占用内存的,存在代码区; 其次,实例化一个对象又两种方: calss A{}; 1. A a = new A; 2. A b; 对于第一种而言,对象是在 " 堆上 " 创建的,因此,对象的成员变量是在堆上的 而对于第二种实例化对象也会分情况的," 对象存在哪,成员变量就存在哪 " ; 当然,这是非静态成员变量;静态成员变量不被对象所独占,是所有对象共享的;在类里边声明,在类外初始化的;所以计算对象内存大小时不算静态成员变量的; 最后,静态成员变量在 " 全局区 " 就是data区,因为它时对象共同拥有的。还有个小插曲:指针在哪存? 首先搞清楚,指针也是个变量,也有类型; 其次指针的存储和同类型的一般变量存储方式时一摸一样的,包括动态申请内存,指针指向得内存在堆上,自己存储的位置要分情况,根据上下文而定,大多数使用场景都是在栈上。 不管是指针变量,还是一般变量,只要是非静态成员变量,存在哪都是要看对象的。