看不懂一句话
#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);
有这么实例化一个类的吗??书上没看到过,有没有资料
[解决办法]
复制构造函数,哪本书都讲啊
[解决办法]
拷贝构造函数,随手一本c++教材都会讲。
可以翻翻《C++ Primer Plus》