我有一個向量的頂點,我希望將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