c++的成员变量是在堆还是栈区

成员变量并不能决定自身的存储空间位置。决定存储位置的对象的创建方式。

即:

  • 如果对象是函数内的非静态局部变量,则对象,对象的成员变量保存在栈区。

  • 如果对象是全局变量,则对象,对象的成员变量保存在静态区。

  • 如果对象是函数内的静态局部变量,则对象,对象的成员变量保存在静态区。

  • 如果对象是new出来的,则对象,对象的成员变量保存在堆区。

猜你喜欢

转载自blog.csdn.net/xionglifei2014/article/details/80282703