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

关于C++里面的new和delete

2012-08-09 
关于C++里边的new和delete下边四个选项中只有一个是对的,选出你的答案,并说明这个选项正确的理由,其他选项

关于C++里边的new和delete
下边四个选项中只有一个是对的,选出你的答案,并说明这个选项正确的理由,其他选项不对的理由


A,使用new操作符,可以动态分配全局堆中的内存资源
B,若P的类型由A强制转换为void*,那么执行语句delete P*时,类A的析构函数不会被调用
C,实现全局函数时,new和delete通常成对的出现在由一对匹配的花括号限定的语句块中
D,执行语句 A*P=new A[100]时,类A的构造函数只会被调用一次


“小屋阿萨”谢谢了,呵呵……

[解决办法]
B
[解决办法]
D 我實際操作了...是錯的, 會调用100次
B 題目有問題,如果是
A * p = new A;
void * t = (void *)p;
delete t; //肯定不會調用类A的析构函数
[解决办法]
选B

A * p = new A; 
delete (void*)p; //不会调用A的析构

A,使用new操作符,可以动态分配全局堆中的内存资源 
A也没发现哪里不对,单全局堆这个词第一次见 如果就是我们常说的堆内存,那应该没有问题

C,实现全局函数时,new和delete通常成对的出现在由一对匹配的花括号限定的语句块中 
这句话也说的莫名奇妙 看不出错来 暂且认为对吧

D,执行语句 A*P=new A[100]时,类A的构造函数只会被调用一次 
产生100个A对象 肯定调用100词构造函数

[解决办法]
A、win32里不区分全局堆和局部堆
B、A * p = new A; void * t = (void *)p; delete t; //肯定不會調用类A的析构函数
C、没看懂
D、显然会调用100次构造函数
[解决办法]

B正确,试过了;
C,D错误。

A哪里错了?

[解决办法]
说实话,这种考试和考级时喜欢出的细节题我感觉用处不大……哪怕能做100分也比不上一个自己编一个实用程序

热点排行