作者flax00298 (NI)
看板EE_DSnP
標題[閒聊] VOID POINTER OPERATOR
時間Mon Dec 28 16:49:45 2009
記得上次在課堂後有人問道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)
1F:推 LoganChien:試過 operator void * () { ... } 了嗎? 12/28 21:38
2F:→ LoganChien:我試這個是沒有問題的。(轉型運算子覆載) 12/28 21:39
3F:→ flax00298:其實我忘了==寫出來ok就po出來了 12/28 22:14
4F:→ flax00298:其實只是覺得沒看過很酷 12/28 22:15
5F:推 LoganChien:其實這種寫法寫得很有酷,我也是第一次看到 :-) 12/28 22:17
6F:→ flax00298:阿阿等等樓上別走!! 12/28 22:19
7F:→ flax00298:我忘記問你,你確定你的函式可以REURN東西嗎? 12/28 22:19
8F:→ flax00298:這樣寫得ERROR是再回傳VOID的函式設定回傳質 12/28 22:20
9F:→ flax00298: RETURN 12/28 22:20
10F:→ flax00298:阿SORRY我搞錯了==的確兩個都可以:) 12/28 22:22
11F:推 LoganChien:我是用轉型運算子覆載,語法是 operator [回傳型別] () 12/28 22:22
12F:→ LoganChien:所以編譯器應該是要可以過。 12/28 22:23
※ 編輯: flax00298 來自: 140.112.251.212 (12/28 22:28)