问个关于 int s[]这种 出了函数快就释放的 数组的小疑点
问个关于 int s[]这种 出了函数快就释放的 数组的小问题
int s[]
如果 在C语言里面 都是函数块 所以 声明的 东东 都是局部变量(除全局的)
可是C++里面有 类的概念
如果 把 int s[]={1,2,2} 这种东西 当成 数据成员的话 (没有malloc) 我这个类的实例 或者 类的内部 都可以可以 不断修改 他 也就是说 这个东西 不会释放 该如何解释呢?
难道 难这东西 放在类里面 他就不存在栈上了?
------解决方案--------------------
数据成员生存周期同 所在的对象。
------解决方案--------------------
放在类里面 ?
类在哪里 不告诉我看!!!!你这种东西真奇葩。。
他是在类的对象的占用的内存中 如果你是定义的类对象 那么这个就在你定义的那个函数的栈上、退去这个函数就自动被析构掉了
若干你是new(相当于malloc)的 那么就在堆上、需手动的delete。所以不管怎么样你的这东西都在类的每个对象上
int s[]
如果 在C语言里面 都是函数块 所以 声明的 东东 都是局部变量(除全局的)
可是C++里面有 类的概念
如果 把 int s[]={1,2,2} 这种东西 当成 数据成员的话 (没有malloc) 我这个类的实例 或者 类的内部 都可以可以 不断修改 他 也就是说 这个东西 不会释放 该如何解释呢?
难道 难这东西 放在类里面 他就不存在栈上了?
------解决方案--------------------
数据成员生存周期同 所在的对象。
------解决方案--------------------
放在类里面 ?
类在哪里 不告诉我看!!!!你这种东西真奇葩。。
他是在类的对象的占用的内存中 如果你是定义的类对象 那么这个就在你定义的那个函数的栈上、退去这个函数就自动被析构掉了
若干你是new(相当于malloc)的 那么就在堆上、需手动的delete。所以不管怎么样你的这东西都在类的每个对象上