Hola, estaba tropezando con el código heredado, y encontré una definición/declaración de método extraña. Tengo una idea aproximada de lo que hace, pero no puedo estar 100% seguro todavía.¿Qué significa esta declaración/definición de Método? (¿Tiene algo que ver con pasar una matriz?)
declaración:
const SomeEnumeratedId (&SomeMethod() const)[SOME_CONSTANT_VALUE];
definición
const SomeEnumeratedId (&SomeClass::SomeMethod() const)[SOME_CONSTANT_VALUE]
{
return someMemberArray;
}
Mi mejor conjetura es que está pasando una referencia a someMemberArray y que está garantizando que es de tamaño SOME_CONSTANT_VALUE, pero nunca he visto la notación [] después de la declaración del método tal como aparece, y hay tantos paréntesis.
Cualquier ayuda muy apreciada.
Entonces, ¿el [SOME_CONSTANT_VALUE] después del método le dice a la función de llamada que la referencia devuelta hace referencia a una matriz de esa longitud? Esa es la parte que más me confunde, ya que nunca he visto esa parte en una declaración de función. Solo he visto matrices pasadas como referencias o punteros sin eso al final. – Michael
@Michael: Sí. Es parte de la declaración del tipo de devolución. –
Wierd. Muchas gracias. – Michael