Идентификатор не найден в непрограммном цикле
Я попытался найти ошибку "идентификатор не найден" только для того, чтобы найти сообщения, в которых функция должна быть перемещена за пределы основного цикла или должна использовать предварительное объявление. Тем не менее, мой сценарий используется в качестве модуля для игрового движка, поэтому не имеет реального основного цикла, и рассматриваемая функция вызывается другой функцией над ошибочной строкой без проблем:
// 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);
}
}
Функция создания идентификатора находится на самом верху, и эти две функции появятся намного позже. Первый (setPlayedWith) не вызывает проблем, но второй (getFriendPersonaName) завершается неудачно с: 'createSteamID': идентификатор не найден при компиляции скрипта.
Я немного растерялся и, надеюсь, кто-то может указать мне правильное направление.
1 ответ
Если getFriendPersonaName() является функцией-членом, то вы забыли правильно определить ее, чтобы она выглядела следующим образом:
string Steam::getFriendPersonaName(int steamID)...
если это не участник, то вы не можете получить к нему доступ. однако вы можете получить к нему доступ только в том случае, если getFriendPersonaName() является функцией-другом, где вы должны отредактировать подпись:
String getFriendPersonaName(int steamID, const steam& rhs);