Энциклопедия C++ Builder



ОБЩИЕ ХАРАКТЕРИСТИКИ - часть 16


Символьный тип служит для объявления байтовых величин. В Паскале значения символов типа Char

заключены в диапазоне от 0 до 255. В C++ символ без знака

(unsigned char) эквивалентен описанию Char Паскаля, однако символ со знаком

(signed char) имеет другой диапазон значении от -127 до +128. Два варианта присваивания значения некоторому символу на Паскале выглядят как:

с : Char ;

с := #65;

с := Char(0rd('А' ) ) ;

что эквивалентно следующему C++ коду:

char с ;

с = 65;

с = 'А'; // Здесь используются одиночные кавычки.

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

top = 20;

вызовет ошибку компиляции "Undefined symbol "top"'. Булевы значения "истина" и "ложь" могут записываться на Паскале как true. True, TRUE, TruE и т.д. - как вам больше нравится, хотя по традиции используется нотация True и False (с заглавной буквы). Компилятор C++Builder разрешает использовать типизированные булевы переменные

bool, значения которых принято писать строчными буквами.

Ключевое слово Паскаля "with" на C++ не имеет эквивалента, поэтому переводя программу в C++Builder, вам придется добавлять спецификатор класса ко всем свойствам и методам. Таким образом, фрагмент кода на Паскале:

with Label do begin

Top := 20;

Left := 20;

Caption := 'Здравствуй, мир!' ;

end;

на C++ следует переписать в следующем виде:

Label ->Top =20;

Label->Left = 20;

Label->Caption = "Здравствуй, мир!";

Ключевое слово Паскаля "as" на C++ снова не имеет эквивалента, поэтому, переводя программу в C++Builder, следует использовать оператор динамического преобразования типа dynamic_cast. Этот оператор кажется менее удобным, однако его преимущество заключается в том, что проверка допустимости преобразования данного типа не связана с анализом исключений. Таким образом, фрагмент кода на Паскале:

with Sender as TLabel do

Caption := 'Здравствуй, мир1';

на C++ следует переписать в следующем виде:

TLabel* label = dynamic_cast<TLabel*>(Sender);

if (label)

label->Caption = "Здравствуй, мир1";

Паскалевы множества. C++ не поддерживает концепцию типа множества (set), как такового. Вместо множества C++ программисты используют битовые поля, которые не менее эффективны, однако более сложны для понимания и обращения. Поскольку VCL повсеместно использует паскалевы множества, для их интерпретации в C++Builder введен шаблонный класс Set. Множества очищаются посредством метода Clear. Для добавления элементов к множеству используется оператор вставки (“), а для удаления - оператор экстракции (”).




Содержание  Назад  Вперед