关于运算符重载的一个问题

reme 发布于 2011/08/24 16:00
阅读 83
收藏 0

我今天子写单元测试的时候看到这样的一个函数

operator gwInt16()
 {
  return m_data;
 }

m_data是类的一个公有成员变量,这个形式没见过啊,有谁能解释一下吗?谢谢了

加载中
0
RickHuang
RickHuang

这个叫做explicit类型转换。如下伪代码:

class A{

..

public:

    operator gwInt16(){....}

};

class gwInt16{...}

void test_function(gwInt16 i){...}

int main(int argc,const* char argv[]){

A theA;

test_function(theA);//通过类A的类型转换操作符成员方法,将theA“转换”为gwInt16的一个对象(实际可能是创建一个新的gwInt16对象,然后返回)

}

0
yaoboyuan
yaoboyuan

和operator int(){}的重载是一样的

返回顶部
顶部