Espressioni predefinite dell'argomento

Le espressioni utilizzate per gli argomenti denominati sono spesso espressioni costanti, sebbene non sia un requisito.L'espressione possibile combinare le funzioni che sono visibili in, nelle espressioni costanti delle variabili globali correnti.L'espressione non può contenere variabili locali o le variabili membro di classe non statico.Il seguente codice seguente:

BOOL CreateVScrollBar( HWND hWnd, short nWidth =
GetSystemMetrics( SM_CXVSCROLL ) );

la dichiarazione precedente specifica una funzione che crea una barra di scorrimento verticale di una larghezza specificata per una finestra.Se nessun argomento della larghezza viene fornito, la funzione API di Windows, GetSystemMetrics, viene chiamato per trovare la larghezza predefinita per una barra di scorrimento.

L'espressione predefinita viene valutata dopo la chiamata di funzione, ma la valutazione viene completata prima della chiamata di funzione in realtà venga effettuata.

Poiché gli argomenti formali a una funzione sono sotto della funzione e perché la valutazione di argomenti denominati ha luogo prima della voce a questo ambito, non è possibile utilizzare gli argomenti formali, o variabili locali nelle espressioni predefinite dell'argomento.

Si noti che qualsiasi argomento formale dichiarato prima di un'espressione predefinita dell'argomento possibile nascondere un nome globale in ambito funzione, che può provocare errori.Il codice seguente non è valido:

const int Categories = 9;
void EnumCategories( char *Categories[], int n = Categories );

Nel codice precedente, il nome globale Categories è nascosto all'ambito della funzione, rendendo l'espressione predefinita dell'argomento non valida.

Vedere anche

Riferimenti

Argomenti predefiniti