作者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)