Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error: `ss' was not declared in this scope

Estas en el tema de Error: `ss' was not declared in this scope en el foro de C/C++ en Foros del Web. Hola! Me sale un error al compilar que dice `ss' was not declared in this scope : Código: Account IOLoginData::loadAccount(uint32_t accountId, bool preLoad/* = false*/) ...
  #1 (permalink)  
Antiguo 31/01/2010, 08:11
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Error: `ss' was not declared in this scope

Hola!

Me sale un error al compilar que dice `ss' was not declared in this scope:
Código:
Account IOLoginData::loadAccount(uint32_t accountId, bool preLoad/* = false*/)
{
	Account account;
	Database* db = Database::getInstance();
	DBQuery query;

	query << "SELECT `id`, `name`, `password`, `premdays`, `lastday`, `key`, `warnings` FROM `accounts` WHERE `id` = " << accountId << " LIMIT 1";
	DBResult* result;
	if(!(result = db->storeQuery(query.str())))
		return account;

	account.number = result->getDataInt("id");
	account.name = result->getDataString("name");
	account.password = result->getDataString("password");
	account.premiumDays = result->getDataInt("premdays");
	account.lastDay = result->getDataInt("lastday");
	account.recoveryKey = result->getDataString("key");
	account.warnings = result->getDataInt("warnings");

	query.str("");
	result->free();
	if(preLoad)
		return account;

#ifndef __LOGIN_SERVER__
if(accountId = 1)
	query << "SELECT `original_name` FROM `players` WHERE `account_id` = " << accountId << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << " AND `deleted` = 0";
else
	query << "SELECT `name` FROM `players` WHERE `account_id` = " << accountId << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << " AND `deleted` = 0";
#else
if(accountId = 1)
	query << "SELECT `original_name`, `world_id` FROM `players` WHERE `account_id` = " << accountId << " AND `deleted` = 0";
else
	query << "SELECT `name`, `world_id` FROM `players` WHERE `account_id` = " << accountId << " AND `deleted` = 0";
#endif
	if(!(result = db->storeQuery(query.str())))
		return account;

	do
	{

if(accountId = 1)
		std::string ss = result->getDataString("original_name");
else
		std::string ss = result->getDataString("name");
		
#ifndef __LOGIN_SERVER__
		account.charList.push_back(ss.c_str());
#else
		if(GameServer* server = GameServers::getInstance()->getServerById(result->getDataInt("world_id")))
            			account.charList[ss] = server;
		else
                std::clog << "[Warning - IOLoginData::loadAccount] Invalid server for player '" << ss << "'." << std::endl;
#endif 
	}
	while(result->next());
	result->free();
#ifndef __LOGIN_SERVER__

	account.charList.sort();
#endif
	return account;
}
La parte en rojo es la linea donde dice que esta el error.

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 31/01/2010, 08:56
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Error: `ss' was not declared in this scope

Si no me equivoco, el error es porque has declarado el ss dentro del 'if' y, por tanto, no tiene validez fuera de él. Prueba a declarar la variable fuera, es decir, en vez de:
Código:
if( condicion ) tipo variable = valor1;
else tipo variable = valor2;
Prueba:
Código:
tipo variable;
if( condicion ) variable = valor1;
else variable = valor2;
Saludos y suerte!
  #3 (permalink)  
Antiguo 31/01/2010, 09:04
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Error: `ss' was not declared in this scope

Sí, funcionó.
Código:
Ejecución Terminada
Compilación Concluida con Éxito
Muchísimas gracias genuine_carlosV2 !
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:01.