C++深度解析 对象的构造(上)(16)
对象中成员变量的初始值
示例程序:
#include <stdio.h>
//Test是一个自定义数据类型
class Test
{
private:
int i;
int j;
public:
int getI() {return i;}
int getJ() {return j;}
};
//在全局的数据区占用存储空间,在全局数据区的变量的初始值为0
Test gt; //全局对象
int main()
{
printf("gt.i = %d\n", gt.getI()); //0
printf("gt.j = %d\n", gt.getJ()); //0
//占用的存储空间在栈上
Test t1;//局部对象
printf("t1.i = %d\n", t1.getI()); //随机值
printf("t1.j = %d\n", t1.getJ()); //随机值
//类对象的指针,Test是一个自定义数据类型
//类得到的是数据类型,所以通过类数据类型在全局数据区、堆、栈空间都能生成对象
Test* pt = new Test;//堆空间分配
printf("pt->i = %d\n", pt->getI()); //0,结果只是巧合
printf("pt->j = %d\n", pt->getJ());