我有一个向量的顶点,我希望将vertice.setVisit设置为false或0。我为此定义了一些getter和setter,但是得到了一些类型错误。代码是按如下:getter和setter错误
//Vector:
std::vector<project3::Vertex<VertexType, EdgeType>*> Vertice1;
//Class containing methods:
template <class VertexType, class EdgeType> class Vertex{
protected:
//std::vector<std::pair<int, EdgeType>> VertexList;
VertexType vertice;
EdgeType edge;
int num;
int mark;
//int status=0;
public:
void setNum(int){ this.num = num; }
int getNum() { return num; }
int getMark(){ return mark; }
void setVisit(int) { this.mark = mark; }
};
在某些功能,我为分配值给它:
for(int i=0; i<g1.Vertice1.size(); i++)
{
g1.Vertice1.at(i)->setNum(0);
g1.Vertice1.at(i)->setVisit(0);
}
下面是我得到的错误,而代码的编制“this.mark =标记“和”this.num = num“在类的函数定义中。
Error: left of '.mark' must have class/struct/union
Error: left of '.num' must have class/struct/union
这不是分配通过getter和setter方法值的正确方法是什么?
哦~~爽....它的工作。实际上在Java中,它就像this.mark = mark,因此正在尝试。谢谢反正提供快速解决方案:) – 2011-04-11 01:16:25
没问题!我用一点点信息附加了答案。祝你好运! – RageD 2011-04-11 01:17:49
@tech_learning:如果你已经给出了成员函数参数名称“mark”,那么这也适用于这里(当然,用'this->'而不是'this.')。但是,您离开参数未命名。 – ildjarn 2011-04-11 01:40:22