[問題] 關於 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