operator typename() const 用作类型转换
C++可以默认转换数据类型也可以强制进行类型转换重载转换操作符就是为了方便对类产生的对象进行转换操作,它必须是成员函数实现类的类型转换只能应用于一个转换,不能连续进行转换操作。
template <typename T>
class Base
{
public:
Base(T&);
//类型转换构造函数
operator T() const
{
return typeT;
//这里必须有,要不然会报错
}
//operator类型转换
private:
};
如:
template< class T >
class A {
public:
operator T() { // 类型转换操作
return _aT;
}
operator T() const { // 类型转换操作
return _aT;
}
T& operator=(const T& aT) {
_aT = aT;
return _aT;
}
private:
T _aT;
};
int main()
{
A<int> a;
a = 1;
int c = a;
// a = -a;
// a = a + 1;
}