C++创建对象时报错:引发了异常: 读取访问权限冲突。 p2.m_Height 是 nullptr。
发布日期:2021-05-18 09:16:18 浏览次数:24 分类:精选文章

本文共 717 字,大约阅读时间需要 2 分钟。

今天在做C++项目时遇到了一个棘手的问题。原本项目运至某个测试函数时,程序会报错,提示“p2.m_Height 是 nullptr。”,指向第38行代码。这个问题看起来挺简单的,但经过一番调试,发现问题并不在表面。

首先,错误信息提到了p2.m_Height为null,这意味着在尝试访问m_Height时,它为null。这让我联想到指针未被正确初始化的问题。我需要检查在构造p2时,m_Height是否被正确初始化,特别是在使用某个类的拷贝构造函数时,是否某些成员变量未被正确复制。

我尝试在使用拷贝构造函数时,发现拷贝构造函数的实现有问题。拷贝构造函数的目的是使以另一个对象为起点创建新的对象时,正确地拷贝所有成员变量,而不是直接使用引用或者指针。由于我的拷贝构造函数没有正确处理m_Height的指针,导致在复制过程中没有正确初始化或进行适当的处理,于是当我尝试访问m_Height时,结果是一个不合法的null指针。

于是,我开始审查拷贝构造函数的实现。发现在拷贝过程中,某些条件判断和初始化步骤被遗漏了。特别是对于m_Height这类指针类型的成员变量,没有正确进行归并或初始化。修正后,我确保在构造函数中,如果有必要的时候,能够正确地初始化这些指针,防止出现未初始化指针的情况。

通过测试,我发现问题确实出在拷贝构造函数上。将拷贝构造函数注释掉,并重新编译项目,问题得以解决。所以,总结一下,拷贝构造函数的错误导致了这个问题,注释它就可以通过编译。同时,这也提醒了我在编写C++类的构造函数时,特别是对带有指针或其他复杂类型的成员变量的类,要仔细检查拷贝构造函数的实现,确保每一项都被正确处理,避免出现指针未初始化等问题。

上一篇:正确理解left join
下一篇:错误 C3867:“Cube::getHeight”: 非标准语法;请使用 "&" 来创建指向成员的指针

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月30日 14时31分56秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

embedding层_【预估排序】Embedding+MLP: 深度学习预估排序通用框架(一) 2023-01-24
excel中最常用的30个函数_Excel玩转数据分析常用的43个函数! 2023-01-24
flink sql设置并行度_Flink 参数配置和常见参数调优 2023-01-24
go 字符串替换_Go 每日一库之 quicktemplate 2023-01-24
hex editor neo下载_口袋妖怪爆焰黑手机版下载-口袋妖怪爆焰黑手游下载v4.3.0 安卓版... 2023-01-24
hibernate mysql 关联查询_spring-boot hibernate 双向关联查询的坑 2023-01-24
hive 建表_sqoop的使用之导入到hive和mysql 2023-01-24
hp工作站z8装Linux,惠普Z8G4双路最小工作站 2023-01-24
html上传图片直接保存到数据库中,Editor上传图片路径存入数据库中怎么弄? 2023-01-24
html游戏玩不了,WinXP网页游戏玩不了怎么办有哪些解决方法 2023-01-24
html转jsp_JSP详解 2023-01-24
ICLOUD储存空间要升级吗_有人像我一样需要恢复苹果手机icloud空间ios备份时 微信卡住不动了吗(已解决)... 2023-01-24
image unity 原始尺寸_Unity基础教程-对象管理(十一)——生命周期(Growth and Death)... 2023-01-24
iphone打字怎么换行_手持iPhone?你可能并不知道的小技巧! 2023-01-24
jaccard相似度_自然语言处理之文本相似度计算 2023-01-24
java 8 list对象属性判空_java ---- 认识类对象,属性和方法 2023-01-24
java http delete_java积累---HttpDelete请求方式传递参数 2023-01-24
java swing数据库,如何在Java swing中查看数据库结果集 2023-01-24
java xmpp 群聊,使用XMPPFramework openfire创建聊天室 2023-01-24
java 反义_java中一些常用的英语 2023-01-24