1

我正在尝试为我创建的“团队”类中的数据字段创建一个访问器函数。每个团队成员都有一个指向另一个团队成员的指针数据字段,称为“合作伙伴”。有了getter,我想返回团队成员伙伴的地址。

数据字段 Partner 定义为:

Team *partner;

我在标题中定义了如下函数:

Team getPartner();

这是我到目前为止尝试过的访问器功能:

Team Team::getPartner()
{
    return *partner;
}

这是我试图在主函数中使用的语法(每个团队成员都是作为指针创建的;Harry 是为其设置合作伙伴的对象之一的名称)

cout << Harry->getPartner() << endl;

这个指向另一个对象的指针的访问器函数是我的代码中唯一不起作用的部分。不幸的是,我不明白我的编译器给我的错误信息。我将不胜感激任何建议。

4

1 回答 1

3

如果你想返回伙伴的地址,那么在你的函数返回类型中这样说

Team* getPartner();

...

Team* Team::getPartner()
{
    return partner;
}

或者,您可以返回对合作伙伴的引用

Team& Team::GetPartner()
{
     return *partner;
}

但为了

cout << Harry->GetPartner();

您必须告诉编译器您希望它如何理解 << 对于 Teams。

ostream& operator << (ostream& o, const Team& team)  
{ 
    return o << team.name << team.somethingelse;
}
于 2013-04-01T19:37:47.577 回答