首页
题库
面试
求职
学习
竞赛
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收藏
2911浏览
热门推荐
相关试题
运行 ldd hello 可以得到...
百度
C++
评论
(3)
请你从产品角度分析一下拼多多。
竞品研究
评论
(1)
在多核 CPU 环境下,对于不同类...
Python
评论
(1)
以下Python代码执行后,输出结...
Python
评论
(1)
在Python多线程环境中,针对C...
Python
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题