抱歉,如果标题不清楚,我会尝试更好地解释我的问题。
我创建了一个类Unit:
class Unit {
.
. (attributes)
.
public:
vector<Unit> getvoisins(Game Game0);
vector<Unit> getgroupe(Game Game0);
};
而且,在getgroupe中,我有一个问题,我如何参考单位我应用该方法?我开始写作:
vector<Unit> Unit:: getgroupe(Game Game0) {
vector<Unit> L;
L.push_back( ???? );
return L;
}
如何推翻相关单位?就像我打电话UnitA.getgroupe
一样,我想让方法执行L.push_back(UnitA)
(然后是其他事情),但我不知道如何编写它。 (用什么来取代??)
很抱歉,如果我没有解释清楚,或者问题是否已在其他地方得到解答,我无法找到答案,因为我无法解决问题。
答案 0 :(得分:4)
this
是指向您当前正在调用该方法的对象的指针。 *this
是指针指向的对象。
在您的情况下,这应该有效:
vector<Unit> Unit::getgroupe(Game _game0) // why the parameter?
{
vector<Unit> L;
L.push_back(*this); // the object of "This" current object
return L;
}
建议:使用适当的变量名称