C++ //赋值运算符重载 =
1 //赋值运算符重载 = 2 #include <iostream> 3 #include <string> 4 using namespace std; 5 6 //赋值运算符的重载 7 class Person 8 { 9 public: 10 11 Person(int age) 12 { 13 m_Age = new int(age); 14 } 15 ~Person() 16 { 17 if (m_Age != NULL) 18 { 19 delete m_Age; 20 m_Age = NULL; 21 } 22 } 23 //重载 赋值运算符 24 Person& operator= (Person& p) 25 { 26 //编译器是提供浅拷贝 27 //m_Age = p.m_Age; 28 29 //应该先判断是否有属性再堆区,如果有先释放干净 然后再深拷贝 30 if (m_Age != NULL) 31 { 32 delete m_Age; 33 m_Age = NULL; 34 } 35 36 //深拷贝 37 m_Age = new int(*p.m_Age); 38 //返回对象本身 39 40 return *this; 41 42 } 43 44 int *m_Age; 45 }; 46 47 void test01() 48 { 49 Person p1(18); 50 51 Person p2(20); 52 53 Person p3(30); 54 55 p1 = p2 = p3; 56 57 //p2 = p1; //赋值操作 58 59 cout << *p1.m_Age << endl; 60 cout << *p2.m_Age << endl; 61 cout << *p3.m_Age << endl; 62 } 63 int main() 64 { 65 test01(); 66 67 68 int a = 10; 69 int b = 20; 70 int c = 30; 71 72 a = b = c; 73 74 cout << "a = " << a << endl; 75 cout << "b = " << b << endl; 76 cout << "c = " << c << endl; 77 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15112405.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)