类型转换操作符函数
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <string>
//用类型转换操作符函数进行转换(在自己的类中实现)
class Point2D
{
public:
Point2D(int x, int y)
:_x(x), _y(y){}
void dis()
{
cout << "(" << _x << "," << _y << ")"
<< endl;
}
Point2D &operator=(const Point2D &another)
{
this->_x = another._x;
this->_y = another._y;
return *this;
}
private:
int _x;
int _y;
};
class Point3D
{
public:
Point3D(int x, int y, int z)
:_x(x), _y(y), _z(z){}
void dis()
{
cout << "(" << _x << "," << _y << "," << _z << ")"
<< endl;
}
//无参,无返回
operator Point2D(void)
{
return Point2D(this->_x, this->_y);
}
private:
int _x;
int _y;
int _z;
};
int _tmain(int argc, _TCHAR* argv[])
{
Point3D p3(1, 2, 3);
Point2D p2(0, 0);
p2 = p3;
//先调用的无参无返回的函数 然后在函数中
//调用Point2D的构造器,最后运算符重载(可用默认)
p2.dis();
return 0;
}