欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > C++ 124类和对象_运算符重载_赋值

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

2025/2/23 7:07:31 来源:https://blog.csdn.net/cjh16606260986/article/details/141201105  浏览:    关键词: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");
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词