首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

new的疑問,该如何解决

2012-03-13 
new的疑問ABC是一個類別1.ABCabc2.ABC*pabcpabcnewABC第一個方式和第二個方式有什麼不同嗎?,如果沒有

new的疑問
ABC   是一個類別

1.ABC   abc;
2.ABC   *pabc;
pabc=new   ABC;

第一個方式和第二個方式有什麼不同嗎?
,如果沒有為什麼要有new這個keyword


[解决办法]
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则可以自己任选构造函数进行构造对象

当然上例没有体现出来

热点排行