Jestem początkującym C ++ i czytam Bjarne Stroustrup's Programming: Principles and Practice Using C ++ .
W sekcji 3.9.2 Niebezpieczne konwersje , wspomniał autor
Gdy inicjalizator jest literałem liczby całkowitej, kompilator może sprawdzić rzeczywistą wartość i zaakceptować wartości, które nie oznaczają zawężenia:
int char b1 {1000}; // error: narrowing (assuming 8-bit chars)
Zdziwi mnie ta deklaracja. Używa dwóch typów ( int
i char
). Nigdy wcześniej nie widziałem takiej deklaracji w Javie i Swifcie (dwóch językach, które stosunkowo dobrze znam). Czy to pomyłka czy prawidłowa składnia C ++?