The One
Первая Глава столь замечательной книги - Освой самостоятельно С++ за 21 день - 5 издание - Джесс Либерти, Брэдли Джонс - прошла на Ура. Прочёл за минут 40 , заостряя внимания на мелочах . Пора перестать читать книги поверхностно
Дало свою пользу. Выпишу такой мини конспект и самое интересное.
Языки бывают
Интерпретируемыми (Интерпретатор, последовательно, превращает инструкции программы в команды машинного кода ), и
Компилируемыми (Компилятор преобразует исходный код программы в некоторую промежуточную форму - объектный фаил.)
Здесь стоит сделать два замечания :
1. Интерпретатор, ... инструкции программы . Компилятор ... исходный код программы . Чувствуете разницу - если внимательно вчитывается то можно заметить такие тонкие нюансы.
2. Когда-то умные дядьки говорили что Компилятор создаёт .ехе фаил - а теперь мы видим что это несовсем так . Пометка : Исправляем неточности.
- Язык С++ Объектно ориентированный язык программирования выросший из С (Си) , благодаря стараниям Бьёрна Страуструпа (Bjarne Stroustrup).
- Язык компилируемый. Что значит создаёт независимые .ехе файлы .
- Типы программирования
- Процедурное, Структурное , Объектно-ориентированное
С процедурным неувязочка вышла - описано довольно смутно, пол абзаца. Ну мы не обижаемся и обязательно прочтём что это такое - Гугл.
Структурное - "разделяй и властвуй", разбиваем большую задачу на под задачи, потом ещё меньше , и ещё , и в итоге чему равна половинка от половинки - Половинке половинки ?
Уважаю , примерно так и в реальной жизни происходит решение каких либо повседневных задач
ООП - Всё есть объект. Каша. Каша состоящая из :
Инкапсуляция - ...
Наследование и многократное использование - ...
Полиморфизм - ...
Я специально оставил пустые места. Суть некоторых вещей мне , примерно, понятна, доходчивые примеры, но ! Что бы оставаться политкорректным дополню со временем.
Нужно ли изучить сначала язык С?
Авторы говорят нет. У меня есть несколько книг по С (Си), купленных мной время назад, если что можно будет взять задачи от туда, сравнить решения на Си и С++, что эффективнее и к месту применения конкретной задачи. Не проподать же добру ?
Управляемые расширения для языка С++
Что меня удивило так это возможность интеграции С++ с платформой .NET. Смутно себе это представляю, так как .NET как и JAVA это по сути виртуальные машины в которых и исполняются программы, написанные на языках ориентированных на ЭТИ среды. Интересно Flash Player и Silverlight можно отнести к этому семейству ? ;)
Ход создания программы :
Код -> Компиляция (Создание .obj файла) -> Компоновка (Собрать все необходимые файлы: .obj, библиотеки, в один .ехе фаил.)
#include
int main ()
{
std::cout << "Hello World!\n"; return 0; }
Интересные детали :
iostream сокращённо от Input-Output-Stream , соответственно и хранятся в этой библиотеке объекты (!) cout и cin. Тоже сокращённо от Console-Output , Console-Input. Когда разъясняешь столь простые вещи то становится ГОРАЗДО понятней - чем давать без смысловой нагрузки.
Если функция main() возвращает что-то то нужно писать int main () и в тексте программы в самом конце return 0; (пока что условимся на этом, как что узнаю обязательно дополню), если она нечего не возвращаем то можно писать void main().
Избегать писать void main() если main() что-то возвращает системе, даже если компилятор позволяет так делать.
Смутно понимаю зачем системе что либо вообще возвращать ? Гугл.
Инструменты :
Visual Studio 2008 Professional. IDE (Integrated Development Environment - Интегрированная среда разработки).
Почему взял такой сложный IDE дорогой ?! Мог взять DevC++ но там непонятная история с версиями IDE , с бетой 5 версии которая в режиме (currently beta) уже более 2 лет а по обещаниям разработчиков вот вот будет готова. Если что поставлю 4 версию и буду проверять спорные моменты там. А Microsoft по отзывам с VS 6 C++ стал только лучше Будем надеется
Быстрый запуск программы
main() должен быть один !
Звучит как Фраза из Горца. Для новичка такого как я кажется что достаточно создать новый проект и в нём уже создавать отдельные .cpp файлы и их компилировать. Но увы при создании двух файлов Hello1.cpp Hello2.cpp и их дальнейшеё компиляции (создании .obj файла) получаю сообщение Error 1 error LNK2005: _main already defined in hello1.obj hello2.obj Hello .
Нужно создавать новый проект. Умные люди говорят - main() должен быть один ! Есть способ как в 1 проекте компилировать множество .cpp файлов, но пока он мне неизвестен.
Комментариев нет:
Отправить комментарий