永发信息网

C++中,析构函数会释放指针成员所指向的空间???

答案:4  悬赏:20  手机版
解决时间 2021-03-27 20:23
  • 提问者网友:人生佛魔见
  • 2021-03-27 03:45
C++中,析构函数会释放指针成员所指向的空间???
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-03-27 03:56
默认析构函数不会释放类型为内置指针的成员变量指向的空间,但是如果显式定义了析构函数或者用了std::shared_ptr之类的智能指针,情况就可能不一样了……追问说的好复杂~我就想问一般情况下,比如一个成员指针,它指向一个整形变量。

那么当对象析构时,这个整形变量空间是否会连同被释放掉追答除非这个指针是智能指针,或者显式定义的析构函数里面有释放这个整形变量空间的语句,否则不会被释放
全部回答
  • 1楼网友:空山清雨
  • 2021-03-27 06:55
假如你有个成员变量 int* p_int;析构函数会将p_int占的4个空间释放,如果p_int = new int[10];
p_int 指向的值10个int空间也就是40个空间需要你手动释放,不然就内存泄露了
  • 2楼网友:第四晚心情
  • 2021-03-27 05:41
看指针用来做什么的
如果只是临时存储一个地址,是不需要释放的
需要手动释放的是你在类的内部new出来的一块空间然后用指针存储起来了追问我就想问一般情况下,比如一个成员指针,它指向一个整形变量。(静态空间)

那么当对象析构时,这个整形变量空间是否会连同被释放掉追答不会,整形变量不需要释放
  • 3楼网友:洎扰庸人
  • 2021-03-27 04:11
1)默认的析构函数什么都不做
2)可以重载析构函数,如果想释放指针,就要重载析构函数,然后在析构函数里面实现对成员指针的释放。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯