Udostępnij za pośrednictwem


Domyślne Argument wyrażenia

Wyrażenia używane dla argumentów domyślne są często wyrażenia stałe, ale nie jest to wymagane.Wyrażenie można połączyć funkcje, które są widoczne w bieżącego zakresu, wyrażenia stałe i zmienne globalne.Wyrażenie nie może zawierać zmienne lokalne lub członka klasy niestatycznego zmiennych.Poniższy kod ilustruje to:

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

Deklaracja poprzedniego określa funkcję, która tworzy pasek przewijania pionowego danej szerokości okna.Jeżeli żaden argument szerokość jest podany, funkcja API systemu Windows GetSystemMetrics, nazywa się znaleźć domyślnej szerokości paska przewijania.

Jest obliczane wyrażenie domyślny, po wywołaniu funkcji, ale oceny jest zakończone, zanim wywołanie funkcji rzeczywiście ma miejsce.

Ponieważ formalne argumenty funkcji mają zakres funkcji i oceny argumenty domyślne odbywa się przed dokonaniem wpisu do tego zakresu, argumenty formalne lub zmienne lokalne nie można używać w wyrażeniach argument domyślny.

Należy zauważyć, że którykolwiek z argumentów formalne zadeklarowane przed wyrażenia argumentu domyślnego można ukryć nazwę globalny zakres funkcji, co może spowodować błędy.Niedozwolone jest następujący kod:

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

W poprzednim kodzie Nazwa globalnego Categories jest ukryte w zakres funkcji, dokonywania nieprawidłowy argument wyrażenia domyślnego.

Zobacz też

Informacje

Argumenty domyślne