看不懂一句话

put2006 put2006 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include "stdafx.h"
#include <iostream>

class TDPoint//三维坐标
{
private:
int x;
int y;
int z;
public:
TDPoint(int x=0,int y=0,int z=0)
{
this->x=x;
this->y=y;
this->z=z;
}
TDPoint operator++();//成员函数重载前置运算符++
TDPoint operator++(int);//成员函数重载后置运算符++
friend TDPoint operator++(TDPoint& point);//友元函数重载前置运算符++
friend TDPoint operator++(TDPoint& point,int);//友元函数重载后置运算符++
void showPoint();
};

TDPoint TDPoint::operator++()
{
++this->x;
++this->y;
++this->z;
return*this;//返回自增后的对象
}

TDPoint TDPoint::operator++(int)
{
TDPoint point(*this); //这句话的意思,有这么实例化一个类的吗????
this->x++;
this->y++;
this->z++;
return point;//返回自增前的对象
}

TDPoint operator++(TDPoint& point)
{
++point.x;
++point.y;
++point.z;
return point;//返回自增后的对象
}

TDPoint operator++(TDPoint& point,int)
{
TDPoint point1(point); //这句话的意思,有这么实例化一个类的吗????
point.x++;
point.y++;
point.z++;
return point1;//返回自增前的对象
}

void TDPoint::showPoint()
{
std::cout<<"("<<x<<","<<y<<","<<z<<")"<<std::endl;
}

int main()
{
TDPoint point(1,1,1);
point.operator++();//或++point
point.showPoint();//前置++运算结果

point=point.operator++(0);//或point=point++
point.showPoint();//后置++运算结果

operator++(point);//或++point;
point.showPoint();//前置++运算结果

point=operator++(point,0);//或point=point++;
point.showPoint();//后置++运算结果

return0;
}

TDPoint point(*this);
TDPoint point1(point);
有这么实例化一个类的吗??书上没看到过,有没有资料
...全文
评论 10
收藏 已收藏
分享
返回顶部
put2006
C++ 语言 65,214 成员 250,514 内容