C++ 用operator实现隐式类型转换

Operator用于C++的运算符重载,同时也可用于隐式类型转换,看下面这个例

#include 
template
class A {
public:
	A(_T a) : data(a) {}
	operator _T () { return data; }
private:
	_T data;
};

int main() {
	A obj(2);
	obj = obj + 1;
	std::cout << obj << std::endl;
	return 0;
}
程序输出为3,因为obj = obj + 1将调用运算符重载,将obj的data成员返回。
 
 

你可能感兴趣的:(c++)