类型转换运算符
- operator T() {} 返回值和T相同, 因此省略, 用来进行一些自定义数据的类型转换.
- 为了避免歧义, T中不能有还有一个参数的构造函数, 否则T() 不知道是进行类型转换, 还是进行实例化.
#include <iostream>
using namespace std;
class Test1 {
public:
int y;
public:
Test1(){
}
Test1(int x, int y) {
this->y = x;
}
};
class Test2 {
int x;
Test1 t1;
public:
Test2(int val) {
x = val;
t1 = Test1(val, val);
}
operator Test1() {
return t1;}
operator int() {
return x;