今天看见一段code。 发现一个很好玩的用法. 可能我见识少吧。记录一下:
class
Loop
{
public:
。。。。。。
inline
operator
event_base * ()
const
{
return
_base;
};
}
}
乍一看,还真没看明白这个的用途。研究一下,这个函数很管用。这个函数会把这个class的指针转化为event_base指针。当然你的class里边要有event_base*的成员。
看下边的例子
class
Vector
{
public:
float
x,y,z;
Vector
() : x(
0
), y(
0
), z(
0
){
}
Vector
(
float
x,
float
y,
float
z ) : x(x), y(y), z(z){
}
operator
float
*(){
return
&x;
}
operator
const
float
*(){
return
&x;
}
我们就可以这么玩了
Vector
x
(
1
,
2
,
3
);
float
* f = x;
assert
(*f ==
1
);
怎么样,是不是很好玩 哈哈