Выбрать главу

►Логические выражения...48 

С++ предоставляет в распоряжение программиста логический тип bool. Название этого типа происходит от имени Буля, автора символьной логики. Булева переменная может иметь только одно из двух значений — true или false.

«В С++ имеются выражения, которые дают результат типа bool — например, выражение "х равно у" может иметь значение true или false.» 

[Советы]

►Выражения смешанного типа...48 

С++ позволяет использовать в одном выражении переменные разных типов. Например, можно складывать целые и действительные переменные. В следующем выражении переменная nValue1 является целой:

      /* в следующем выражении перед выполнением операции сложения значение nValue1 преобразуется к типу double */

      int nValue1 = 1 ;

      double dValue = nValue1 + 1.0 ;

Выражение, в котором два операнда относятся к разным типам, называется выражением смешанного типа. Тип генерируемого в результате значения будет соответствовать более мощному типу операнда. В нашем случае перед началом вычислительного процесса nValue1 конвертируется в тип double. По тому же принципу выражение одного типа может быть присвоено переменной другого типа, например:

      /*в следующем задании целая часть dVariable сохраняется в nVariable */

      double dVariable = 1.0 ;

      int nVariable ;

      nVariable = dVariable ;

 

«Если переменная в левой стороне равенства относится к типу менее мощному, чем переменная справа, то при таком присвоении можно потерять точность или диапазон значений ( например, если значение переменной dVariable превышает диапазон допустимых значений переменной nVariable ).» 

[Атас!]

Преобразование типа большего размера в меньший называется понижающим приведением ( demotion ), а обратное преобразование — повышающим приведением ( promotion ). 

_________________ 

48 стр. Часть 1. Первое знакомство с С++

Соглашения по именованию

Вы могли заметить, что имя каждой переменной начинается с определённого символа, который, как может показаться, совсем ни к чему ( эти специальные символы приведены в таблице ниже ). С помощью соглашений по использованию этих символов можно мгновенно распознать, что dvariable — это переменная типа double. Данные символы помогают программисту распознавать типы переменных, не обращаясь к их объявлениям в другом месте программы. Так, нетрудно определить, что в представленном ниже выражении осуществляется присвоение смешанного типа ( переменная типа long присваивается целочисленной переменной ):

       nVariable = lVariable ;

Для С++ использование этих специальных символов не имеет никакого значения. При желании для обозначения переменной типа int вы можете использовать любую другую букву. Однако "первобуквенное" соглашение упрощает понимание, и многие программисты постоянно используют подобные схемы в своей работе, хотя следующие объявления вполне корректны и допустимы в программе на С++:

      double myVariable ;

      int someIntValue ;

      double nThisDoesntEvenMatch ;

      Символ —Тип

      n — int

      l — long

      f — float

      d — double

      с —character

      sz — string 

 

«Использование в С++ выражений смешанного типа — идея далеко не самая блестящая; их лучше избегать, не позволяя С++ делать преобразования за вас.»

[Советы] 

_________________ 

49 стр. Глава 2. Премудрости объявления переменных