我自己编写的一个类如下:
#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重新编辑 ]