До-ре-мд-фа-соль-ля-C-t
Евгений ФИДЕЛИН
Единственный спо соб изучать
новый язык програм мирования —
писать на нем программы.
Брайан Керниган
С
реди людей, которые начинают свое знакомство с язы-
ками программирования, безусловно, больше всего тех,
кто отдал предпочтение Паскалю . И это не случайно.
Придуманный Н. Виртом для обучения студентов, в по-
следнее время он стал (в основном благодаря среде Delphi)
мощным средством, которому по плечу любые задачи. В от-
личие от Паскаля, C ++ изначально был универсальным язы-
ком программирования, задуман-,
ным так, чтобы сделать програм-
мирование более приятным для
серьезного программиста. Одна-
ко это ни в коем случае не озна-
чает, что C++ сложен и непоня-
тен — просто, в зависимости от
уровня ваших знаний, вы можете
использовать или не использовать
все его возможности (рис. 1).
Данная статья ставит целью
не только помочь начинающим
программистам на C++, но и
привлечь внимание заядлых «паскальщиков» (между прочем,
профессиональные C++ программисты пользуются гораздо
большим спросом, да и оплачиваются выше, чем програм-
мисты на Паскале). Исходя из этого, я решил дать некото-
рые советы по безболезненному переходу с Паскаля на C++
(если быть более точным, то с Delphi на C + + B uilder ©).
Перевод программы с языка Паскаль на C + +
Язык программирования C++, несмотря на попытки со сто-
роны Паскаля, был и остается лучшим языком для написания
качественных, надежных в работе и простых в понимании
программ (и нечего топать ногами и кричать — эта мое су-
губо личное мнение). Поэтому, если вы считаете, что про-
граммирование должно стать основой вашей профессио-
нальной деятельности — то рано или поздно знания по C++
вам обязательно понадобятся. Для изучения языка C++ и
сред C++ Builder и Visual C++ я рекомендую вам посмотреть
хорошую подборку статей и учебников, которые находятся
на www.abyss-group.narod.ru, страница «Documents» (рис. 2).
Если вы давно программируете на Паскале, то у вас на-
верняка накопилось немало программ, которые, безуслов-
но, не только нужные и полезные, но и архиважные ©. Па-
этому терять их вы не захотите, да и ребята из Inprise сде-
лали все, чтобы этого не произошло.
Хочу обрадовать тех, кто программирует в Delphi. Во-пер-
вых, интерфейс у C++ Builder и Delphi абсолютно одинаков,
и вам не понадобится заново разбираться во всех опциях и
настройках, а во-вторых, компилятор C++ Builder свободно
понимает компоненты, формы, константы и простые функ-
ции, написанные на Объектном Паскале. В любом другом
случае вам следует остерегаться подводных камней при пе-
реводе вашего кода.
Сразу предупреждаю, что в C++ различаются заглавные и
строчные буквы (это не относится к директивам препроцессо-
ру), поэтому осторожно обращайтесь с клавишей Shift. Заве-
дите себе привычку первую букву каждого отдельного слова,
которое не является ключевым словам C++, писать с большой
буквы (например, StrToInf) и у вас с этим не будет проблем.
В языке C++ нет процедур, неким их аналогом может слу-
жить разве что функция типа void, не возвращающая резуль-
тат, поэтому следует ва всех случаях после имени функции пи-
сать символы О (например, g e tc h ()). Также в C++ не допуска-
ется вложение функций и вложение описания класса в функцию.
Оператор членства, который используется для доаупа к
функции, свойству или полю класса, в Паскале обозначает-
ся символом «точка» ( . ). В отличие от Паскаля, в C++ для
объектов VCL используется символ косвенного членства «смарт-
поинт» ( -> ) — это связано со способом размещения объ-
ектов в памяти. Поэтому код Паскаля
Editl.Text
на C++ будет выглядеть как
Editl->Text
Оператор присвоения в C++ — эта знак равенства ( = ),
поэтому изменен символ оператора логического тождест-
ва — это удвоенный знак равенства ( == ).
Для оператора «логическое не равно» в C++ предназна-
чен символ !=. Также в C++ отсутствуют ключевые слова
Паскаля
and
и o r, вместо них существуют символы & и
I I.
Таким образом, код Паскаля
if (aob) or (b=c)
должен записываться на C++ как
if((a!=b) І І (Ь==с))
Одиночные кавычки ( ' ) используются в C++ не для обозна-
чения текстовых строк, как в Паскале, о для обозначения толь-
ко отдельных символов типа
char
(этот тип в C++ может быть
либо signed
char
(от -127 до +128), который аналогичен про-
сто
char,
либо
unsigned char
(от О
ДО
+255), чта соответству-
ет типу
char
в Паскале). Для обозначения строк
в
C++ служат
двойные кавычки ( " ). Для полной совместимости со строками
в Delphi я рекомендую пользоваться только типом
String.
Ключевое слово Паскаля
with
на C++ не имеет эквива-
лента, поэтому вам придется добавлять имя класса ко всем
переменным, свойствам и функциям. Опять же не имеет эк-
вивалента и ключевое славо Паскаля as, поэтому, перево-
дя программу на C++, следует использовать оператор дина-
мического преобразования типа dynam ic_cast или функцию
преобразования типа («новый тип») («переменная старого ти-
па»), Таким образом, фрагмент кода на Паскале
(Sender as TButton).Caption: ='Hi'
на C++ будет выглядеть либо как
TButton* button = dynamic_cast<TButton*> (Sender) ;
button->Caption ="Hi"
либо как
((TButton*)Sender)->Caption->"Hl"
(лично я предпочитаю второе).
Окончание на стр. 45
Рис.2
предыдущая страница 41 Мой Компьютер 2005 10 читать онлайн следующая страница 43 Мой Компьютер 2005 10 читать онлайн Домой Выключить/включить текст