我是C++的新手,并试图找出指针和引用之间的区别。我刚刚读了this short summary。C++运算符重载将指针类型作为参数?
在文章中,作者提到day *operator++ (day *d);
不会编译(注:day
是枚举类型),并认为此重载操作者功能的参数的类型必须是T,T &,或T const的&,其中T是一个类或枚举类型。
我假设指针是内置类型而不是类或枚举,所以它不能用于重载操作符,并且操作符重载不可能适用于所有内置类型,如int和double。
例如,int i = 1; ++i;
将永远不会导致i
为3,因为++
运算符负载类型为int
。
我正确吗?请帮助我更好地理解此问题。在操作符重载
我看了一下你的问题中的链接--- *可怕*(你可以从他们的例子甚至没有编译的事实中已经知道)。引用的最常见用法是:当复制对象时,1个const引用作为函数参数会效率低下(并且可能由于缺少复制构造函数而被禁用); 2许多非const成员函数(包括运算符)的返回类型; 3一个非const引用作为函数参数,当对象被修改时(这个用法是有争议的,因为指针也很受欢迎); 4作为数据成员,永远不能改变(而不是指针)。 – Walter