lesson2(补充)取地址及const取地址操作符重载

个人主页:Lei宝啊

愿所有美好如期而遇


以下两个默认成员函数一般不用重新定义 ,编译器默认会生成。

复制代码
#include <iostream>
using namespace std;

class Date
{

public:

	Date()
		:_year(2023)
		,_month(10)
		,_day(28)
	{}

	Date* operator&()
	{
		return this;
	}

	const Date* operator&() const
	{
		return this;
	}

private:
	int _year;
	int _month;
	int _day;
};

int main()
{

	Date a;
	cout << &a << endl;

	const Date b;
	cout << &b << endl;

	return 0;
}


这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需
要重载,比如 想让别人获取到指定的内容!

复制代码
#include <iostream>
using namespace std;

class Date
{

public:

	Date()
		:_year(2023)
		,_month(10)
		,_day(28)
	{}

	Date* operator&()
	{
		return nullptr;
	}

	const Date* operator&() const
	{
		return this;
	}

private:
	int _year;
	int _month;
	int _day;
};

int main()
{

	Date a;
	cout << &a << endl;

	const Date b;
	cout << &b << endl;

	return 0;
}

甚至我们可以返回一个错误的地址(滑稽)

相关推荐
听风lighting几秒前
WebServer实现:muduo库的主丛Reactor架构
linux·运维·网络·c++·socket·webserver
比特层递6 分钟前
C++: 输出Windows平台或Linux平台时间信息的函数
开发语言·c++
oioihoii1 小时前
C++11 Thread-Local Storage:从入门到精通
java·开发语言·c++
HaiQinyanAN1 小时前
【学习笔记】锁+死锁+gdb调试死锁
c++·笔记·学习
意疏1 小时前
全面掌握 C++ 基础:关键特性与进化
开发语言·c++
孞㐑¥1 小时前
Linux之线程同步与互斥
linux·c++·经验分享·笔记
智践行2 小时前
ROS2 Jazzy:用C++实现一个动作服务器和客户端
c++·操作系统
范纹杉想快点毕业3 小时前
Qt实现文本编辑器光标高亮技术
java·开发语言·c++·算法·系统架构
mxpan9 小时前
Golang 与 C/C++ 交互实践
c语言·c++·golang
才鲸嵌入式10 小时前
C++相比于C语言增加了哪些概念?
c语言·c++·单片机·嵌入式·arm·面向对象·软件