首页 > 试题广场 >

类ClassA的构造函数和析构函数的执行次数分别为()

[单选题]
ClassA *pclassa=new ClassA[5];
delete pclassa;
c++语言中,类ClassA的构造函数和析构函数的执行次数分别为()
  • 5,1
  • 1,1
  • 5,5
  • 1,5
推荐
A
Class A *pclassa=newClassA[5];  new了五个对象,所以构造5次,然后Pclass指向这五个对象
deletepclassa;  析构一次,delete[]pclassa   这样就析构5次
编辑于 2015-12-07 13:45:02 回复(4)
1. 构造函数的函数名和类名相同 2. 构造函数没有返回值 3. 构造函数和普通函数一样带有一个(可能为空)的参数列表和一个(可能为空)的函数体 4. 可以有多个构造函数,构造函数间必须参数个数不同或者参数类型不同
发表于 2021-07-03 16:03:42 回复(0)
这边考察delete和delete[] 的区别。delete和delete[]都能释放指针所指向的内存区域。但delete只会调用一次析构函数,而delete[]还会调用后续所有对象的析构函数。当数据类型为基本数据类型时,用delete和delete[]都可以,因为基本数据类型没有析构函数。
发表于 2016-06-01 14:45:46 回复(2)
构造函数很明显 5次。
析构时 区别 delete 和 delete[]
发表于 2015-12-06 23:39:48 回复(0)
但是我用vs2017进行调试时,直接delete释放会出错。使用delete[]是会调用5次析构函数的。
发表于 2019-07-03 17:00:14 回复(0)
delete 程序会出错,析构一次~而delete[]会析构5次
发表于 2018-03-23 14:34:45 回复(0)
A Class A *pclassa=newClassA[5];  new了五个对象,所以构造5次,然后Pclass指向这五个对象 deletepclassa;  析构一次,delete[]pclassa   这样就析构5次
发表于 2018-05-26 01:01:32 回复(0)

构造五次, 析构一次, 有自定义的析构函数时程序崩溃.

发表于 2017-09-07 09:25:38 回复(0)
SMn头像 SMn
new -> delete
new [ ] -> delete [ ]
发表于 2017-08-17 22:49:19 回复(0)
程序不写全,看来出题人偷懒了呀。 New classA[5]啥意思?
编辑于 2022-02-12 00:55:03 回复(1)
请问只调用了一次析构函数的话,那是五个对象都被释放了,还是说只释放了一个对象,这样是不是会内存泄漏?
发表于 2022-05-07 17:54:58 回复(0)
五个成员,不是析构五次吗
发表于 2022-03-12 01:05:46 回复(0)
delete程序会出错,析构一次,delete[]析构五次
发表于 2022-01-24 13:53:09 回复(0)
只析构了一次
发表于 2021-06-07 12:21:29 回复(0)
bf啊bfa,这种低级的错误也犯,delete 并不是 delete arry
发表于 2021-03-29 10:42:16 回复(0)
区分delete与delete[]的区别 delete:调用一次析构函数 delete[]:会调用所有后续对象的析构函数 注意:当为基础数据类型时,两者的效果一样,因为基本数据类型没有析构函数。 题目中指针指向数组的首地址,相当于只释放了第一个元素
编辑于 2021-02-21 08:36:02 回复(0)
编译器显示的是析构五次
发表于 2020-05-31 15:01:59 回复(0)
new了五个对象,五次构造
发表于 2017-08-25 21:09:35 回复(0)
new 了五个对象,所以构造了5个函数,然后delete pclassa,析构了一次
发表于 2017-06-08 10:00:59 回复(0)
直接访问数组,当问到的是数组的第一个对象
发表于 2017-05-16 19:35:33 回复(0)
指针名指向第一个地址,数组第一个元素地址
发表于 2015-11-23 16:14:55 回复(0)