首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
如果您定义了一个类,其指针成员是使用new初始化的,请指出可
[问答题]
如果您定义了一个类,其指针成员是使用new初始化的,请指出可能出现的3个问题以及如何纠正这些问题。
添加笔记
邀请回答
收藏(13)
分享
纠错
2个回答
添加回答
2
推荐
蜡蜡
首先,当这种类型的对象过期时,对象的成员指针指向的数据仍将保留在内存中,这将占用空间,同时不可访问,因为指针已经丢失。可以让类析构函数删除构造函数中new分配的内存,来解决这种问题。其次,析构函数释放这种内存后,如果程序将这样的对象初始化为另一个对象,则析构函数将试图释放这些内存两次。这是因为将一个对象初始化为另一个对象的默认初始化,将复制指针值,但不复制指向的数据,这将使两个指针指向相同的数据。解决方法是,定义一个复制构造函数,使初始化复制指向的数据。第三,将一个对象赋给另一个对象也将导致两个指针指向相同的数据。解决方法是重载赋值运算符,使之复制数据,而不是指针。
发表于 2018-05-02 20:36:41
回复(0)
0
robotninja
析构函数,复制构造函数和赋值运算符需要重新定义
发表于 2019-10-26 16:26:55
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++
上传者:
蜡蜡
难度:
2条回答
13收藏
2943浏览
热门推荐
相关试题
运行 ldd hello 可以得到...
百度
C++
评论
(3)
若存在一颗平衡二叉树,其所有非叶结...
树
评论
(1)
在超网络中,生成子网络参数的过程通...
机器学习
评论
(1)
Adam优化器是深度学习中常用的自...
机器学习
评论
(1)
以下哪种方法主要用于缓解大模型训练...
大模型概念
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题