[问题] 关于 enum 的 operator overloading

楼主: putumaxally (putumaxally)   2014-05-25 05:45:48
问题(Question):overload operator 不能使用 pointer 当参数吗?
上周在 C 语言的课堂上被老师问 pointer 跟 reference 的差别,我在
网络上找资料的时候看到这段程式码
enum day
{
Sunday, Monday, Tuesday, Wednesday, Thursady, Friday, Saturday
}x;
day& operator++(day& d)
{
d = (day)(d + 1);
return d;
}
不可以改成 day* operator++(day* d) 的形式
只有当参数是 T, T& 才是 member operator 吗,所以 T* 一定不会用在
operator overloading 吗?
还有上面的例子是 prefix 的,那如果想要 postfix 该怎么做呢
http://ppt.cc/Sa3Y 关于 pointer 跟 reference 的差别,我这样描述对吗?
※ 文章网址:http://www.ptt.cc/bbs/C_and_CPP/M.1400967957.A.51D.html
※ 编辑: putumaxally (175.180.68.25), 05/25/2014 05:49:04
作者: LPH66 (-6.2598534e+18f)   2014-05-25 07:21:00
其实这不是 member operator...postfix 的话加个 int 参数即可, 不用用到甚至不用命名如果你的 operator 可能会直接作用在指标上就得要用 T*例如 std::string 的 operator == 就有吃 char* 的版本这让我们能写 someStringObject == "someCString"回一篇好了 @@

Links booklink

Contact Us: admin [ a t ] ucptt.com