为了账号安全,请及时绑定邮箱和手机立即绑定

c++中的类和实例分别存储在什么地方

c++中的类和实例分别存储在什么地方

C++
森栏 2018-11-26 12:00:19
c++中的类和实例分别存储在什么地方
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

类不会储存在什么地方,只是告诉程序,如何去创建这个类型的变量、需要多少个字节、以及如何销毁等等等。
至于实例,也可以说对象,在什么地方,就是我们通常说的堆栈。抛开全局常量区以及静态存储区这些不谈。
如果你new了一个对象(还有其他的c的分配方式,比如malloc不推荐使用),这种就属于动态分配内存,分配在堆上。堆相对于栈很大,所以很多时候我们分配在堆上,但也意味着,你需要知道什么时候去销毁他,所以与delete或delete []成对出现。
Student stu; 类似于这样的我们没有使用new的对象就分配在了栈上。他的对象是自己管理的。在 {}函数体中的最后会自动按照栈的后进先出,销毁对象。所以不需要你去管理对象的内存,但也意味着对象所在的生命周期通常就是一个{}中。

补充,堆除了比栈空间大,它是在程序运行时来分配内存的,比如分配
int * i = new i[ m] ; //m 是在程序运行后,从输入中得到的数值。
但栈不可以,int i[ m ];//这里必须是常量 const int m = 1000; 在程序编译的时候,他就必须知道数组有多大。

查看完整回答
反对 回复 2018-12-01
  • 1 回答
  • 0 关注
  • 824 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信