我是这么理解的。
就是在那个TESTOB()函数中你是定义的一个静态变量的,就是STATIC TEST TEST,所谓静态变量就是在后面的引用中都是这么一个确定的值的。。所以你后面调用的时候才会出现你这样的情况的。这个程序确实应该是输出HELLO。
因为你相当于是给TEst这个类创建了一个引用指针的,就是testob那么你在使用的时候可以直接使用testob就可以了。你在程序中是这个样子实现的,。然后进行初始化,就是你的init函数,这个函数就把hello的指针赋值给了str ,然后你后面又紧跟着去调用你的显示函数,这个样子呢,就会显示出你的hello 的。所以不应该是test ,除非你是调用的构造函数的。
我也是初学不知道对不对。。
我是这么理解的。
就是在那个TESTOB()函数中你是定义的一个静态变量的,就是STATIC
TEST
TEST,所谓静态变量就是在后面的引用中都是这么一个确定的值的。。所以你后面调用的时候才会出现你这样的情况的。这个程序确实应该是输出HELLO。
因为你相当于是给TEst这个类创建了一个引用指针的,就是testob那么你在使用的时候可以直接使用testob就可以了
static TEST test; 设为了静态,只会在第一次调用时进行初始化,也就是在第一次调用才会去构造对象。这个对象的的内存空间的生命周期是和整个程序相同的,也就是在调用完TEST & testob()对象的内存空间不释放,下次调用TEST & testob()时,这个对象还存在,就不会再去重新构建。所以你第二调用testob().display(),它输出的是hello,函数没有重新去构造对象,就不会调用构造函数。
static 对像只能创建一次!你创建第一次为"TEST",再来个init();
这个值成为了"HELLO",以后不管你怎么创建,它都不会再初始化了
只能给它赋值.