在非程序循环脚本中找不到标识符

Indentifier not found in non-program loop script

本文关键字:找不到 标识符 脚本 循环 程序      更新时间:2023-10-16

我试图查找"未找到标识符"错误,只是为了找到函数必须在主循环外移动或应使用前向声明的帖子。然而,我的脚本被用作游戏引擎的模块,因此没有真正的主循环,所讨论的函数由失败行上方的不同函数调用,没有问题:

// Create a Steam ID
CSteamID Steam::createSteamID(uint32 steamID, int accountType){
    CSteamID cSteamID;
    if(accountType < 0 || accountType >= k_EAccountTypeMax){
        accountType = 1;
    }
    cSteamID.Set(steamID, EUniverse(k_EUniversePublic), EAccountType(accountType));
    return cSteamID;
}
// Set a Steam user as someone recently played with
void Steam::setPlayedWith(int steamID){
    if(SteamFriends() == NULL){
        return;
    }
    CSteamID friendID = createSteamID(steamID);
    SteamFriends()->SetPlayedWith(friendID);
}
// Get friend's Steam username
String getFriendPersonaName(int steamID){
    if(SteamFriends() == NULL || steamID == 0){
        return "";
    }
    CSteamID friendID = createSteamID(steamID);
    bool isDataLoading = SteamFriends()->RequestUserInformation(friendID, true);
    if(!isDataLoading){
        return SteamFriends()->GetFriendPersonaName(friendID);
    }
}

ID创建函数位于最顶部,这两个函数在后面出现。第一个(setPlayedWith)成功了,没有问题,但第二个(getFriendPersonaName)失败了,在编译脚本时没有找到标识符。

我有点不知所措,希望有人能给我指个方向。

如果getFriendPersonaName()是一个成员函数,那么您可能忘记了正确地定义它,所以它看起来像:

string Steam::getFriendPersonaName(int steamID)...
如果

不是成员,则不能访问它。但是,只有当getFriendPersonaName()是好友函数时,你才能访问它,你应该将签名编辑为:

String getFriendPersonaName(int steamID, const steam& rhs);