看板 EE_DSnP 關於我們 聯絡資訊
記得上次在課堂後有人問道viod* 嗯嗯 仔細揣摩了一下err 訊息 覺得真的很...機掰 是了又是終於發現是這樣寫才會ok #include <iostream> using namespace std; class A { public: A(int a):i(a){} * operator void() //OK {return ((i%2)==1 ? NULL: (this));} private: int i; }; int main () { A a(12); if(a) cout<<"even"<<endl; else cout<<"odd"<<endl; system("pause"); } 嗯這樣就過了 而且正確的work 滿酷的 希望對大家有幫助 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.195 ※ 編輯: flax00298 來自: 140.112.4.195 (12/28 16:52) ※ 編輯: flax00298 來自: 140.112.4.195 (12/28 16:52) ※ 編輯: flax00298 來自: 140.112.251.212 (12/28 17:44)
LoganChien:試過 operator void * () { ... } 了嗎? 12/28 21:38
LoganChien:我試這個是沒有問題的。(轉型運算子覆載) 12/28 21:39
flax00298:其實我忘了==寫出來ok就po出來了 12/28 22:14
flax00298:其實只是覺得沒看過很酷 12/28 22:15
LoganChien:其實這種寫法寫得很有酷,我也是第一次看到 :-) 12/28 22:17
flax00298:阿阿等等樓上別走!! 12/28 22:19
flax00298:我忘記問你,你確定你的函式可以REURN東西嗎? 12/28 22:19
flax00298:這樣寫得ERROR是再回傳VOID的函式設定回傳質 12/28 22:20
flax00298: RETURN 12/28 22:20
flax00298:阿SORRY我搞錯了==的確兩個都可以:) 12/28 22:22
LoganChien:我是用轉型運算子覆載,語法是 operator [回傳型別] () 12/28 22:22
LoganChien:所以編譯器應該是要可以過。 12/28 22:23
※ 編輯: flax00298 來自: 140.112.251.212 (12/28 22:28)