new的疑
ABC 是一
1.ABC abc;
2.ABC *pabc;
pabc=new ABC;
第一方式和第二方式有什不同?
,如果有什要有newkeyword
[解决办法]
1.ABC abc; // 在栈或者静态存储区里
2.ABC *pabc;
pabc=new ABC;// 从堆上申请内存空间
new的作用就是如此
[解决办法]
用new将在程序运行时动态分配内存,如string类就用了动态分配,你可以用string类接收一系列的键盘输入而不用担心分配的内存不够或者浪费内存,由于new,string会自动调整大小,而不像静态分配的char数组,char数组分配大了占内存,分配小了怕装不下,如果有很多字符串要输入这个就会成为一个问题,没有理由为装下一推大部分为5个字符却有一个199个字符的字符串而分配一堆char[200]变量吧
[解决办法]
1 是在栈上分配内存
2 是在堆上分配内存
两者的生存期不同吧
[解决办法]
好像也有构造函数方面的问题吧
1用的是默认的构造函数
2则可以自己任选构造函数进行构造对象
当然上例没有体现出来