当前位置: 首页 > news >正文

C++ 124类和对象_运算符重载_赋值

C++ 124类和对象_运算符重载_赋值


学习内容
        解决自定义对象之间赋值是因析构函数重复释放内存时引发的异常问题

结果

代码

#include<iostream>
using namespace std;//cout 在这里,没有它会报错//类和对象_运算符重载_赋值
//学习内容
//解决自定义对象之间赋值是因析构函数重复释放内存时引发的异常问题class Person
{
public:Person(int age){m_Age = new int(age);}int *m_Age;//存内存地址,存指针Person& operator=(Person &p){//应该先判断是否有属性在堆区,如果有先释放干净,然后再深拷贝if (m_Age != NULL){delete m_Age;}//* 解引用//深拷贝 newm_Age = new int(*p.m_Age);return *this;//返回引用}/// <summary>/// 析构函数 主要用于对象销毁时释放内存/// </summary>~Person(){if (m_Age != NULL){delete m_Age;//清空内存}}
};void test01()
{Person p1(18);Person p2(28);Person p3(38);p3 = p2 = p1;cout << "年龄:" << *p1.m_Age << endl;cout << "年龄:" << *p2.m_Age << endl;cout << "年龄:" << *p3.m_Age << endl;
}int main()
{test01();system("pause");
}


http://www.mrgr.cn/news/69.html

相关文章:

  • Ubuntu安装cuda
  • Windows平台RTSP|RTMP播放器如何实现实时录像功能
  • 24.8.15学习笔记(Titanic - Machine Learning from Disaster)
  • Unity动态给按钮各个状态下的图片赋值
  • Python基础知识学习总结(一)
  • 微信小程序电话号码授权
  • Android常见控件(一)
  • 运维大规模K8S集群注意事项
  • 【流媒体】RTMPDump—Download(接收流媒体信息)
  • c语言中比较特殊的输入函数
  • CSS的:in-range和:out-of-range伪类:增强输入验证的视觉反馈
  • 设计模式-观察者模式
  • 修改了原神4.8版本升级数据表
  • Android笔试面试题AI答之Kotlin(15)
  • 在Linux系统下安装、配置ETCD
  • C语言enum枚举
  • MySQL 常用 SQL 语句大全
  • UE5学习笔记15-BginPlay事件、Tick事件
  • 前端(Vue)动态换肤的通用解决方案及原理分析(2)
  • 《基于CT的人工智能预后模型在非小细胞肺癌切除术中的临床应用》| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统