hej, niedawno zacząłem poznawać książkę "Język C++ Szkoła Programowania wydanie Vl" . Początkowe lekcja są dla mnie łatwe bo znam te informację z kursów pana Mirosława Zelenta , jednak natknąłem się ta pewien fragment kodu i wydaje mi się on dziwny , może najpierw podam kod programu zapisanego w książce (i z niektórymi moimi komentarzami) :
const int code = 66; //stała symboliczna
int x=66;//zmienna
char c1{31325}; //zawężenie typu ,niedozwolone (a mi kompilator nie daje nic znać)
char c2 = {66}; //dozwolone bo char mieści wartość 66
char c3{code}; //jak wyżej ale nie ma znaku "=" , czy to coś zmienia ??
char c4 = {x}; //niedozwolone bo x nie jest stałą (rozumiem)
x = 31325;
char c5 = x; //dozwolone w tej składni inicjalizacji (to rozumiem)
według tego co piszę w książce na przykład po napisaniu takiej instrukcji : char c4 = {x}; kompilator powinien wyrzucić błąd bo użyliśmy inicjalizacji klamrowej , problem jest taki że u mnie wszystko działa ok .
Poza tym nie wiem czy jest różnica między takim zapisem : char c4{x} a char c4={x} , wiem że to może być proste ale nie do końca rozumiem o co tu chodzi . Dziękuje za wszelką pomoc w komentarzach :)