c++操作符重载以指针类型作为参数

C++ operator overloading takes pointer type as parameter?

本文关键字:参数 类型 指针 操作符 重载 c++      更新时间:2023-10-16

我是c++的新手,想弄清楚指针和引用之间的区别。我刚刚读了这篇简短的摘要。

在文章中,作者提到day *operator++ (day *d);不能编译(注意:day是枚举类型),并指出这个重载操作符函数的形参必须是T、T&或T constamp;类型,其中T是类类型或枚举类型。

我假设指针是内置类型,而不是类或enum,因此它不能用于重载操作符,并且操作符重载不能用于所有内置类型,如int和double。

例如,通过重载int类型的++操作符,int i = 1; ++i;永远不会导致i为3。

我说的对吗?请帮助我更好地理解这个问题。

操作符重载的第一条规则是:
您不能重载内置数据类型的操作符,只能重载自定义数据类型的操作符,所以在这方面您是正确的。

是的,指针是基本类型,而不是对象。它们只是数字(它们所指向的对象的内存地址),因此可以对它们应用算术运算。

是的,不能重载基本类型的操作符(但是可以在接受基本类型形参的类中重载二进制操作符)。