• 4370阅读
  • 2回复

赋值运算符重载[已解决:不用看了,误会贴] [复制链接]

上一主题 下一主题
离线shifan
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-18
我自己编写的一个类如下:
#ifndef MARKEDPOINT_H
#define MARKEDPOINT_H
enum EdgeType{LeftEdge=0,RightEdge,SingleEdge,NotEdge};
enum GenFromType{Left=0,Right,Top,Buttom,Single};
class MarkedPoint
{
public:
    MarkedPoint();
    MarkedPoint(int x_index,int y_index,enum EdgeType shape_edge,enum GenFromType point_from);
    MarkedPoint(const MarkedPoint &A);
    int getX()const;
    int getY()const;
    enum EdgeType nature()const;
    enum GenFromType ancient()const;
    void setEdgeType(enum EdgeType type);
    bool operator<(const MarkedPoint &greater)const;
    MarkedPoint& operator=(const MarkedPoint& A);
private:
    int x;
    int y;
    enum EdgeType edge;
    enum GenFromType gen_from;
};

#endif // MARKEDPOINT_H

实现代码如下:
#include "MarkedPoint.h"

MarkedPoint::MarkedPoint()
{

}
MarkedPoint::MarkedPoint(int x_index,int y_index,enum EdgeType shape_edge,enum GenFromType point_from)
        :x(x_index),y(y_index),edge(shape_edge),gen_from(point_from)
{
}
int MarkedPoint::getX() const
{
    return x;
}
int MarkedPoint::getY() const
{
    return y;
}
enum EdgeType MarkedPoint::nature() const
{
    return edge;
}
void MarkedPoint::setEdgeType(enum EdgeType type)
{
    edge=type;
}
bool MarkedPoint::operator<(const MarkedPoint &greater)const
{
    return y<greater.getY();
}

enum GenFromType MarkedPoint::ancient() const
{
    return gen_from;
}
MarkedPoint& MarkedPoint::operator=(const MarkedPoint& A)
{
    if(this!=&A)
    {
        this->x=A.getX();
        this->y=A.getY();
        this->edge=A.nature();
        this->gen_from=A.ancient();
    }
    return *this;
}
MarkedPoint::MarkedPoint(const MarkedPoint &A)
{
    x=A.getX();
    y=A.getY();
    edge=A.nature();
    gen_from=A.ancient();
}
但是编译的时候出现了这个错误,令我百思不得其解:
/home/shifan/buffer/rect_round/rect_round/../../../public/qt/qt/include/QtCore/qalgorithms.h:156: error: passing ‘const MarkedPoint’ as ‘this’ argument of ‘MarkedPoint& MarkedPoint::operator=(const MarkedPoint&)’ discards qualifiers

求大侠帮助。。。。
[ 此帖被shifan在2010-04-19 11:46重新编辑 ]
离线shifan
只看该作者 1楼 发表于: 2010-04-19
我自己找到错误了,错的地方不在这里,抱歉耽误大家时间了。
离线steinlee

只看该作者 2楼 发表于: 2010-04-19
good
Looking for remote C/C++ and Qt 兼职
快速回复
限100 字节
 
上一个 下一个