bool is_something_ok(int param,SomeStruct* p)
{
bool is_ok = false;
// check if is_ok
if(is_ok)
// set p to some valid value
else
// set p to NULL
return is_ok;
}
esta función de retorno verdadera y conjunto P a un valor válido si "algo está mal" en caso contrario devuelve falso y establecer en nulo p¿Es un buen diseño para devolver el valor por parámetro?
¿Es que un diseño bueno o malo? personalmente, me siento incómodo cuando lo uso. Si no hay ningún documento y comentario, realmente no sé cómo usarlo.
BTW: ¿Hay algún libro/artículo autorizado sobre diseño de API?
Tenga en cuenta que la función no puede establecer el puntero a NULL. Una copia del puntero se pasa como parámetro, e incluso si esa copia se hace nula, el código de llamada no se dará cuenta. Si quieres jugar con el puntero, necesitas un nivel adicional de direccionamiento indirecto (llámalo puntero o referencia: 'bool op (int, SomeStruct * &)' o 'bool op (int, SomeStruct **)' y entonces las cosas se ponen en un poco más desagradable. –
Es posible que desee ver esta respuesta: http://stackoverflow.com/questions/2139224/2139254#2139254 – sbi