Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_КС.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
385.4 Кб
Скачать

Создание библиотеки.

Мы рассмотрели два типа функций, причём объявление функций выполняли в области программы, после подключения заголовочных файлов, но до начала функции 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.