C++ 如何使用C++;?

C++ 如何使用C++;?,c++,return,getter,getter-setter,C++,Return,Getter,Getter Setter,我使用的是SFML,我想返回一些我认为是类的东西。所以我想得到有效载荷并返回它。当payload是一个类时,我该怎么做呢 sf::Packet payload; 我怎么还这个 /** * Gets the payload. */ int LoginPacket::getPayload() { return payload; } 我每次尝试都会出错。我必须使用指针吗?是不是因为负载被标识为类,而编译器告诉我无法将其转换为int?那么我该如何转换它或做什么呢?您希望函数返回什么?如果你想

我使用的是
SFML
,我想返回一些我认为是类的东西。所以我想得到有效载荷并返回它。当
payload
是一个类时,我该怎么做呢

sf::Packet payload;
我怎么还这个

/**
* Gets the payload.
*/
int LoginPacket::getPayload() {
    return payload;
}

我每次尝试都会出错。我必须使用指针吗?是不是因为负载被标识为类,而编译器告诉我无法将其转换为
int
?那么我该如何转换它或做什么呢?

您希望函数返回什么?如果你想让它返回一个int,这个int是什么意思?它是您要检索的数据包中的字段吗?如果你想退回整个包裹,你可以这样做

sf::Packet& LoginPacket::getPayload()
{
    return payload;
}
函数的调用者可以编辑有效负载,或者如果他们愿意的话,可以复制一份有效负载。可以通过添加常量使其只读

const sf::Packet& LoginPacket::getPayload() const
{
    return payload;
}

您希望函数返回什么?如果你想让它返回一个int,这个int是什么意思?它是您要检索的数据包中的字段吗?如果你想退回整个包裹,你可以这样做

sf::Packet& LoginPacket::getPayload()
{
    return payload;
}
函数的调用者可以编辑有效负载,或者如果他们愿意的话,可以复制一份有效负载。可以通过添加常量使其只读

const sf::Packet& LoginPacket::getPayload() const
{
    return payload;
}

让我们看看C++中函数声明是什么。 [返回类型][函数名](参数)

您告诉编译器,当它计算函数中的表达式时,它将返回您为[return type]确定的内容

在函数中,您告诉编译器需要一个int,然后给它一个sf::Packet

如果要返回类,则需要将该类设置为函数的返回类型:

    sf::Packet LoginPacket::getPayload() {
        return payload;
    }
    sf::Packet& LoginPacket::getPayload() {
       return payload;
    }
现在,这将发送有效负载的副本,正如Neil所示,如果您想要返回对数据包的引用(这样我们就可以使用相同的数据包而不必复制它),那么您将需要使用他的函数:

    sf::Packet LoginPacket::getPayload() {
        return payload;
    }
    sf::Packet& LoginPacket::getPayload() {
       return payload;
    }

如果要返回sf::数据包的成员,需要将返回类型设置为该成员,然后返回payload.member

>让我们看看C++中函数声明是什么。

[返回类型][函数名](参数)

您告诉编译器,当它计算函数中的表达式时,它将返回您为[return type]确定的内容

在函数中,您告诉编译器需要一个int,然后给它一个sf::Packet

如果要返回类,则需要将该类设置为函数的返回类型:

    sf::Packet LoginPacket::getPayload() {
        return payload;
    }
    sf::Packet& LoginPacket::getPayload() {
       return payload;
    }
现在,这将发送有效负载的副本,正如Neil所示,如果您想要返回对数据包的引用(这样我们就可以使用相同的数据包而不必复制它),那么您将需要使用他的函数:

    sf::Packet LoginPacket::getPayload() {
        return payload;
    }
    sf::Packet& LoginPacket::getPayload() {
       return payload;
    }
如果要返回sf::数据包的成员,需要将返回类型设置为该成员,然后返回payload.member