我正在尝试为我创建的“Team”类中的数据字段创建一个访问器函数。每个团队成员都有一个指针数据字段给另一个团队成员,称为“伙伴”。有了getter,我想返回团队成员的合作伙伴的地址。
数据字段合作伙伴定义为:
Team *partner;
我在标题中定义了如下函数:
Team getPartner();
这是我到目前为止尝试过的访问器功能:
Team Team::getPartner()
{
return *partner;
}
以下是我正在尝试在main函数中使用的语法(每个团队成员都是作为指针创建的; Harry是其中一个已设置伙伴的对象的名称)
cout << Harry->getPartner() << endl;
指向另一个对象的指针的访问器函数是我的代码中唯一不起作用的部分。不幸的是,我不理解编译器给我的错误消息。我非常感谢任何建议。
答案 0 :(得分:2)
如果要返回合作伙伴的地址,请在函数返回类型
中说明Team* getPartner();
...
Team* Team::getPartner()
{
return partner;
}
或者,您可以返回对合作伙伴的引用
Team& Team::GetPartner()
{
return *partner;
}
但是为了
cout << Harry->GetPartner();
您必须告诉编译器您希望它如何理解&lt;&lt;对于团队。
ostream& operator << (ostream& o, const Team& team)
{
return o << team.name << team.somethingelse;
}