- •Лекция №1 Введение. Основные понятия.
- •6.Отладка и тестирование программы.
- •Арифметические функции
- •Оператор присваивания
- •Операторы ввода и вывода
- •Пишем первую программу
- •Разветвляющиеся алгоритмы
- •Оператор ветвления switch (оператор множественного выбора)
- •Циклические алгоритмы
- •Массивы
- •Работа с символами и строками
- •Процедуры и функции
- •Создание библиотеки.
- •Указатели
- •Структуры
- •Работа с файлами
- •Объектно-ориентированное программирование.
- •Принципы построения классов.
Создание библиотеки.
Мы рассмотрели два типа функций, причём объявление функций выполняли в области программы, после подключения заголовочных файлов, но до начала функции main().
В С++ существует возможность поместить объявления функций в отдельный файл, тогда необходимо будет подключать файл с функциями, как в случае с подключением стандартных заголовочных файлов.
Требуется создать два файла типа *.cpp и *.h.
Файл *.h нужен для того, чтобы скрыть реализацию функций, т. е. в файле *.h будут содержаться прототипы функций. С помощью обозревателя решений MVS создаём файл типа *.h и называем его.
// код файла summa.h #ifndef summa #define summa int summa(int A, int B); // прототип функции нахождения палиндрома пятизначных чисел #endif
|
Директивы в строках 2,3,5 необходимо всегда объявлять в файлах с прототипами функций, причём прототипы функций всегда объявляются в файлах типа *.h. После директив записанных в строках 2,3, но до директивы #endif объявляются прототипы функций. В строке 4 объявлен прототип функции summa() Объявление данной функции находится в файле summa.cpp, который предварительно тоже был создан с помощью обозревателя решений MVS.
// содержимое файла palendrom.cpp #include "stdafx.h" #include "summa.h" int summa(int A, int B) { return (A+B); // } |
В файле summa.cpp находится объявление функции summa(). Так как файл summa.cpp является исполняемым файлом (*.cpp — исполняемые файлы), то в нём обязательно нужно подключить контейнер "stdafx.h", как в строке 2. Чтобы связать файл, где объявлена функция summa() и файл с её прототипом, подключим заголовочный файл (файл с прототипом), это сделано в строке 3. Обратите внимание на то, что при подключении созданного нами файла используются двойные кавычки, а не знаки больше, меньше. Осталось только запустить функцию summa() в главном исполняемом файле.
#include "stdafx.h" #include <iostream> // подключение заголовочного файла, с прототипом функции summa () #include " summa.h" using namespace std;
int main(int argc, char* argv[]) { Summa(2,4); return 0; } |
В строке 6 мы подключили файл с прототипом функции summa(), после чего можно использовать эту функцию. Итак, мы разбили программу на три файла:
файл проекта
заголовочный файл summa.h
исполняемый файл summa.cpp
Файл проекта связываем с заголовочным файлом, а заголовочный файл связываем с исполняемым файлом, в таком случае файл проекта увидит функцию summa () и сможет её запустить.
Про функцию main()
Все создавая программы видели шаблон консольного приложения, где создавалось примерно следующее:
int main(int argc, char* argv[]) { /* ... */ }
Как мы видим у функции main() также есть формальные параметры. Они нужны для запуска программы из командной строки. Первый параметр содержит количество параметров командной строки, второй это массив строк, содержащий параметры командной строки. Т.е. первый параметр показывает количество элементов массива во втором параметре. Первый элемент массива строк (argv[0]) всегда содержит строку, использованную для запуска программы (либо пустую строку). Следующие элементы (от 1 до argc - 1) содержат параметры командной строки, если они есть. Элемент массива строк argv[argc] всегда должен содержать 0.
