(VS报错)已在 xxxxx.exe 中执行断点指令(__debugbreak()语句或类似调用)-解决方法C++创建对象四种方式

news2025/2/27 7:06:32

 上述报错困扰了我好几天,在网上搜了一天,到最后还是没有解决问题

试过通过项目属性->C/C+±>代码生成->启用增强指令集->选择AVX,这种方法也没用

但问题出现在创建对象时内存分配问题上

方法一:

 如果是这样创建对象,并且写了析构函数会报错,把析构函数删去之后程序就能正常运行了。

方法二:

创建对象的方式改为这样,程序也可以正常运行了

 

复习一下创建对象的四种方式

给定类的定义如下

class Test{
    private:
        int a;
    public:
        Test();
        ~Test();
}

 方式一:栈中分配内存,隐式调用构造函数;

Test A;

方式二:栈中分配内存,显式调用构造函数;

Test test = Test();

方式三:堆内存中分内存,使用new关键字显式调用构造函数;

Test *test = new Test;
delete Test;

方式四:其他

  • 很不常用的情况:利用对象指针;但在栈中分配内存(本质和前面两种一样,不过多了一个对象指针来操作而已)
// 很不常用的情况:利用对象指针;但在栈中分配内存
(本质和前面两种一样,不过多了一个对象指针来操作而已)
Test test1;
Test *test2 = &test1;

注意点:

注意1【普通对象(方式1/2)与对象指针(方式3/4)区别】
  • 方式1/2/4:使用完后不需要手动释放,该类析构函数会自动执行
  • 方式3:new申请的对象,则只有调用到delete时再会执行析构函数,如果程序退出而没有执行delete则会造成内存泄漏。【new和delete必须配合使用
注意2【普通对象(方式1/2)与对象指针(方式3/4)访问类中成员的区别】:
  • 创建对象以后,可以使用点号.来访问成员变量和成员函数,这和通过结构体变量来访问它的成员类似
  • 有了对象指针后,可以通过箭头->来访问对象的成员变量和成员函数,这和通过结构体指针来访问它的成员类似
注意3【关于方式3和方式4的说明】:
  • 在栈上创建出来的对象都有一个名字,比如 test1,test2,使用指针指向它不是必须的。
  • 但是通过 new 创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,否则以后再也无法找到这个对象了,更没有办法使用它。
  • 也就是说,使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。
注意4【只定义类指针】

这跟不用new申明对象有很大区别,类指针可以先行定义,但类指针只是个通用指针,在new之前并为该类对象分配任何内存空间。比如:

Test* ptest = NULL;

  • 但使用普通方式创建的类对象,在创建之初就已经分配了内存空间。而类指针,如果未经过对象初始化,则不需要delete释放。

参考文章链接:https://blog.csdn.net/weixin_52028906/article/details/124513418

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux学习-HIS系统(1)

Git安装 #安装中文支持(选做) [rootProgramer ~]# echo $LANG #查看当前系统语言及编码 en_US.UTF-8 [rootProgramer ~]# yum -y install langpacks-zh_CN.noarch #安装中文支持 [rootProgramer ~]# vim /etc/locale.co…

将docker镜像打成tar包

# 打包 docker save -o zookeeper.tar bitnami/zookeeper:3.9.0-debian-11-r11# 解压 docker load -i zookeeper.tar

Jenkins学习笔记2

Jenkins下载安装: 从清华源开源镜像站上下载jenkins的安装包: 安装的是这个版本。 关于软件的版本,尽量使用LTS,长期支持。 首先是安装openjdk: yum install fontconfig java-11-openjdk[rootlocalhost soft]# java …

springcloudalibaba和nacos版本对应关系

文章目录 一、背景二、解决bug历程 一、背景 因为公司项目需要升级springcloud的版本,升级后服务启动时连接不上nacos(如下图) 二、解决bug历程 历程一 一开始直接百度“Client not connected, current status:STARTING”这个错误&#x…

【基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据】

基于Thread多线程随机数(Random)java版本JDBC手动提交事务EasyExcel读取excel文件,向数据库生成百万级别模拟数据 基于Thread多线程随机数(Random)java版本JDBC手动提交事务EasyExcel读取excel文件,向数据库…

最佳实践:TiDB 业务写变慢分析处理

作者:李文杰 数据架构师,TUG 广州地区活动组织者 在日常业务使用或运维管理 TiDB 的过程中,每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循,通过经验的积累可以快速的定…

9.20号作业实现钟表

1.widget.h #include <QPainter> //画家 #include <QTimerEvent> #include <QTime> #include<QTimer> //定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Wid…

基于Xml方式Bean的配置-初始化方法和销毁方法

SpringBean的配置详解 Bean的初始化和销毁方法配置 Bean在被实例化后&#xff0c;可以执行指定的初始化方法完成一些初始化的操作&#xff0c;Bean在销毁之前也可以执行指定的销毁方法完成一些操作&#xff0c;初始化方法名称和销毁方法名称通过 <bean id"userService…

Linux 目录结构介绍

对上面的说明: root 目录 &#xff1a; linux 超级权限 root 的主目录 home 目录 &#xff1a; 系统默认的用户主目录&#xff0c;如果添加用户是不指定用户的主目录&#xff0c;默认在/home 下创建与用户同名的文件夹 bin 目录 &#xff1a; 存放系统所需要的重要命令&am…

设计模式:简单工厂、工厂方法、抽象工厂

参考 Java设计模式之创建型&#xff1a;工厂模式详解&#xff08;简单工厂工厂方法抽象工厂&#xff09; - 知乎 工厂方法 以生产手机为例&#xff0c;具体的UML图如下&#xff1a; 这种方法的优点是对于用户来说&#xff0c;不再需要面对具体的生产逻辑&#xff0c;只需要将生…

k8s的安装

我这里使用vmware创建了三台虚拟机&#xff0c;k8s的虚拟机建议最少2核、4G内存&#xff0c;我的电脑配置不高采用的2核、3G的配置&#xff1b; 安装k8s之前需要先安装docker&#xff0c;docker的安装参考&#xff1a;docker的安装及使用_docker的安装和使用_骑士999111的博客-…

光伏电池建模及温度光照的影响曲线MATLAB仿真

微❤关注“电气仔推送”获得资料 模型介绍&#xff1a; 需要MATLAB2018B及以上的版本&#xff01;&#xff01; 首先根据根据环境修正公式搭建光伏电池仿真模型&#xff1a; 温度变化下的IU、PU仿真及曲线&#xff1a; 光照变化下的IU、PU仿真及曲线&#xff1a; 文件说明&a…

SSD上 NVIDIA Jetson Orin NANO系統如何刷

对于AI计算性能高达40TOPS的Jetson Orin Nano开发套件来说&#xff0c;如果缺少性能够好的存储相匹配&#xff0c;会让总体执行效益大打折扣。为此&#xff0c;NVIDIA在Jetson Orin Nano开发套件上配置2个M.2接口&#xff08;如下图&#xff09;&#xff0c;最高能安装2片高速P…

Spring Boot启动源码分析

一&#xff0c;前言 版本&#xff1a;spring-boot-starter-parent版本为2.3.0 Spring Boot项目的启动入口是一个main方法&#xff0c;因此我们从该方法入手即可 二&#xff0c;源码分析 跟踪run方法 /*** SpringApplication的方法* param primarySource 启动类的class* p…

静态顺序表及基本操作具体实现

静态顺序表及几个基本操作 &#x1f391;定义一个顺序表&#x1f391; 初始化——置空顺序表&#x1f391;创建一个顺序表&#x1f391;打印顺序表各结点的值&#x1f38a;&#x1f38a; 顺序表基本操作&#x1f383;头插&#x1f383;尾插&#x1f383;头删&#x1f383;尾删 …

mysql报错:mysql8插入sql关键字“rank”问题

标题 一、背景二、报错展示三、排查四、结论 一、背景 在设计表的需要定义一个排名的字段&#xff0c;于是定义了“rank”字段&#xff0c;使用mybatisplus进行插入的时候&#xff0c;项目报错。 二、报错展示 1、项目插入报错 2、mysql中直接insert报错 三、排查 通过ins…

SpringCloud Gateway--网关服务基本介绍和基本原理

&#x1f600;前言 本篇博文是关于SpringCloud Gateway的基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力…

快速解决AndroidStudio代码提示失效问题

在编写代码时&#xff0c;代码不自动提示&#xff0c;发现代码自动提示设置正常&#xff0c;所以查询到问题原因在于节能模式的开启&#xff0c;具体解决方式如下&#xff1a; 关闭节能模式 如上图所示&#xff0c;将Power Save Mode前面的对勾去掉&#xff0c;则完成节能模式…

系统检测到您的账户不符合国家相关法律法规或《支付宝用户服务协议》约定,暂时无法签约当前产品

最新一直在开发支付宝小程序&#xff0c;遇到的各种问题颇多&#xff0c;技术上的问题都好解决&#xff0c;开发平台上的问题&#xff0c;真的是让我心力交瘁&#xff0c;自己分析不出原因&#xff0c;打支付宝客服电话永远得不到解答。 现在把自己有一些收获的问题&#xff0…

rk3568环境配置和推理报错: RKNN_ERR_MALLOC_FAIL

前言 最近在部署算法在板子侧遇到的一些问题汇总一下&#xff1a; 一、版本问题 经过测试现在将自己环境配置如下&#xff1a; 本地linux安装rknn-toolkit2-1.5.0 本地Linux使用的miniconda新建的一个python虚拟环境&#xff08;自行网上查找相关方法&#xff09; 安装好自…