首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看不懂一句话解决办法

2013-11-11 
看不懂一句话#include stdafx.h#include iostreamclass TDPoint//三维坐标{private:int xint yint z

看不懂一句话
#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》

热点排行