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

C++[类和对象][3]

C++[类和对象][3]

赋值运算符的重载(operator=)

1.是一个默认成员函数,重载必须为成员函数,用于两个已经存在的对象,(d1=d3赋值重载)(Stack d4=d1拷贝构造(因为d4未存在,初始化))
2.建议写成引用返回提高效率,可以连续赋值重载
3.没有写的时候会自动生成,完成值拷贝/浅拷贝对(对于自定义类型)(一个修改会修改另一个)
4.栈实现赋值重载,要先销毁空间,创建一个一样的空间,再拷贝

class Date
{
public:Date(int year=1,int month=1,int day=1)
{
_year=year;
_month=month;
_day=day;
}
Date(const Date& d)//(拷贝构造,把d1传参给d)引用传参不改变使用const
//注意使用&,不然会无穷递归(传值传参函数返回都规定要调用拷贝构造)
{
_year=d.year;
_month=d.month;
_day=d.day;
}
Date& operator=(const Date& d)//
{
if(this!=&d)
{
_year=d.year;
_month=d.month;
_day=d.day;
}return *this;//(添加this指针的引用返回可以连续赋值)
}void Print()
{
cout<<_year<</<<_month<</<<_day<<endl;
}
private:
{
int _year=year;
int _month=month;
int _day=day;
}
class Stack
{
public:
Stack& operator=(const Stack& st)
{//先判断
if(this!=&st)
{free(a);
a=(int*)malloc(sizeof(int)*st.capcity);
if(a==nullptr)
{
perror("malloc fail!");
return;
}
memcpy(a,st.a,sizeof(int)*st.top);
top=st.top;
capcity=st.capcity;
}
return *this;//栈的赋值重载
}
private:
int top;
int capcity;
}};
int main()
{
Date d1(2025,4,24);
Date d2(d1);
Date d3;
d3=d1=d2;//赋值重载
Stack st1;
Stack st2;
st1=st2;
}
http://www.dtcms.com/a/156138.html

相关文章:

  • git 命令集
  • 设计模式-- 原型模式详解
  • mybatis-plus里的com.baomidou.mybatisplus.core.override.MybatisMapperProxy 类的详细解析
  • 【Linux网络】:套接字之UDP
  • 《免费开放”双刃剑:字节跳动Coze如何撬动AI生态霸权与暗涌危机?》
  • 交叉编译paho.mqtt.c和paho.mqtt.cpp(MQTT客户端)
  • 制作一款打飞机游戏25:添加数据
  • 芯岭技术XL32F003单片机 32位Cortex M0+ MCU简单介绍 性能优异
  • 【Harmony_Bug】forEach + asyncawait 的异步陷阱
  • node.js 实战——从0开始做一个餐厅预订(express+node+ejs+bootstrap)
  • git 的基本使用
  • RTMP 入门指南
  • 【语法】C++的stack和queue
  • 零基础快速搭建AI绘画网站!用Gradio玩转Stable Diffusion
  • Langchain入门介绍
  • Spring @Transactional 自调用问题深度解析
  • C语言----函数栈帧讲解
  • 抖音IP属地跟无线网有关系吗?一文解析
  • 【智慧城市】新中地GIS开发实训:基于 Vue 框架的武汉智慧旅游系统
  • http协议详解附带c/c++服务器和客户端源码
  • 在统信UOS/麒麟Kylin OS中创建网页桌面快捷方式
  • 反序列化漏洞1
  • python pymysql如何保证数据库更新成功
  • 12.thinkphp验证
  • 隧道调频广播覆盖的实现路径:隧道无线广播技术赋能行车安全升级,隧道汽车广播收音系统助力隧道安全管理升级
  • 海量信息处理分析有效决策
  • 控件和QWidget核心属性
  • Android——Activity与Fragment通信
  • SpringBoot 常用注解大全
  • 智能分析网关摄像机实时接入分析平台,如何开启周界防护智能新时代?