c++中的赋值运算符重载=(默认成员函数)
目录
赋值运算符重载的概念
赋值运算符重载的特性
赋值运算符重载的概念
#include<iostream>
using namespace std;class Data
{
public:Data& operator=(Data& d) //创建赋值运算符重载{if (this != &d) //因为传递过来的d是个形参,只是是传引用传递的,所以需要&{_year = d._year;_month = d._month;_day = d._day;}}
private:int _year;int _month;int _day;
};int main()
{Data c1, c2;c1 = c2;return 0;
}
假如我们要将一个对象的值赋值到另一个对象中,就可以使用赋值运算符=
赋值运算符重载的特性
赋值运算符的特性:
1. 参数类型,参数类型为类
2. 返回值,返回值是类的时候,返回的时候会再次调用一次拷贝构造,所以我们返回值需要传引用,所以我们需要传引用返回
3. 检测是否自己给自己赋值
4. 一个类如果没有显式定义赋值运算符重载,编译器也会生成一个,完成对象按字节序的值拷贝
5、赋值运算重载只能在类里面定义,因为需要一个this指针
c++中的赋值运算符重载=(默认成员函数)相关推荐
- C++_类中的6个默认成员函数
C++类中有6个默认函数,分别是:构造函数.析构函数.拷贝构造函数.赋值运算符重载.取地址及const取地址运算符重载.这六个函数是很特殊的函数,如果我们不自己实现,编译器就会自己实现.这篇博客中将一 ...
- 【C++从入门到踹门】第三篇:类和对象(中)类的默认成员函数
目录 1.类的默认成员函数 2.构造函数 2.1 构造函数引入 2.2 构造函数概念及特点 3. 析构函数 3.1 析构函数引入 3.2 析构函数的概念 3.3 在哪些情况下会程序会执行析构函数? 3 ...
- C++类与对象(二) 六个默认成员函数
目录 1.构造函数 (1)引入 (2)性质与验证 (3)总结 2.析构函数 (1)概念 (2)性质与验证 (3)总结 3拷贝构造函数 (1)概念 (2)性质与验证 (3)总结 4.赋值运算符重载 (1 ...
- 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载
1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类.任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数. 构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 ...
- 类的默认成员函数、赋值运算符重载
目录 1.类的6个默认成员函数 2.1 概念 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重 ...
- 类的6个默认成员函数:构造函数、析构函数、拷贝构造函数、重载运算符、三/五法则
文章目录 6个默认成员函数 构造函数 概念 默认构造函数的类型 默认实参 概念 默认实参的使用 默认实参声明 全局变量作为默认实参 某些类不能依赖于编译器合成的默认构造函数 第一个原因 第二个原因 第 ...
- C++类与对象(类中的六大默认成员函数)
文章目录 类的默认成员函数 构造函数 概念 特征 自己定义构造函数 类中编写 传参方法 编译器自动生成的构造函数 定义变量方式 初始化规则 析构函数 概念 特性 自己定义析构函数 编译器自动生成的析构 ...
- 【 C++ 】类和对象(中)—— 类的6个默认成员函数
目录 1.类的6个默认成员函数 2.构造函数 构造函数概念 构造函数特性 3.析构函数 析构函数概念 析构函数特性 4.拷贝构造函数 拷贝构造函数概念 拷贝构造函数特性 5.赋值运算符重载 运算符重载 ...
- C++类和对象(中)(6个默认成员函数)
目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 1. ==函数名==与==类名==相同. 2. 无返回值. 3. ==对象实例化时==编译器自动调用对应的构造函数. 4. ...
最新文章
- Redis 笔记(15)— 管道 pipeline(客户端将批量命令打包发送用来节省网络开销)
- Mysql中大表添加索引的办法
- Mysql编辑工具中使用(Navicat查询结果显示行号)
- 李宏毅机器学习(十)GPT-3
- Java System类identityHashCode()方法及示例
- c++ windows 蓝牙库_c++ - “是否有一个多操作系统蓝牙库?”后续:QT Linux到Windows 10蓝牙 - 堆栈内存溢出...
- python-使用字典使Fibonacci更有效率
- 测试计划的范围_【新书连载05】软件测试流程设计—系统测试计划
- 小白如何购买阿里云服务器(2019最详细教程)
- 【转】解决Navicat 报错:1130-host ... is not allowed to connect to this MySql server,MySQL不允许从远程访问的方法 .
- Spring Boot入门(6)-使用AOP统一处理Web请求日志
- 华为交换机忘记密码怎么办啊,华为交换机登陆密码忘了怎么办
- P1713 麦当劳叔叔的难题(90分)
- 2012最新网站手工注入详解教程
- 如何制作u盘pe启动盘?
- java定义苹果类Apple_定义一个水果接口Fruit,里面定义一个表示吃水果的eat方法。定义一个苹果类Apple和一个橘子...
- 华为发放20亿奖金,人均10万!你还想逃离996吗?
- 2008 R2修复光盘_华录企业级蓝光光盘库DA-BH9010太原售
- C语言读取Excel文件
- 怎样使用fastai旧的api