Evgenii Legotckoi
Қыр. 15, 2017, 1:05 Т.Ж.

C++ - Сабақ 009. Модульдік

Ключевым моментом в управлении взаимодействием различных частей в C++ программе является разграничение интерфейса компопонентов программы с их реализацией. На уровне языка, C++ представляет интерфейс в виде объявлений. Обяъвление указывает все необходимые части интерфейса, которые необходимы например для функции: возвращаемое значение, аргументы, имя функции. Например:

  1. double sqrt(double); // функция квадратного корня, которая принимает аргументы типа double и возвращает переменную типа double
  2.  
  3. // Объявление класса со всеми необходимыми методами и участниками класса
  4. class Vector
  5. {
  6. public:
  7. Vector(int s);
  8. double& operator[](int i);
  9. int size();
  10. private:
  11. double elem;
  12. int sz;
  13. };

Ключевым моментом здесь является то, что реализация всех методов и функций может находиться совершенно в другом месте, в другом файле. Зачастую объявление функций осуществляется в заголовочных файлах с расширением .h , а реализация осуществляется в файлах исходных кодов .cpp.

Например, реализация функции квадратного корня:

  1. double sqrt(double d) // definition of sqrt()
  2. {
  3. // ... алгоритм нахождения квадратного корня ...
  4. }

Также для класса Vector потребуется реализовать несколько участников:

  1. Vector::Vector(int s) // реализация конструктора
  2. : elem{new double[s]}, sz{s} // инициализация участников
  3. {
  4. }
  5.  
  6. double& Vector::operator[](int i) // реализация оператора доступа
  7. {
  8. return elem[i];
  9. }
  10. int Vector::size() // реализация метод size()
  11. {
  12. return sz;
  13. }

Мы должны определить функции Vector, но не sqrt (), поскольку она является частью стандартной библиотеки. Однако это не имеет никакого значения: библиотека - это просто какой-то «другой код, который мы используем», написанный с теми же языковыми средствами, что и мы.

Осы тақырып бойынша ұсынылатын мақалалар

Мақала бойынша сұралады0сұрақтар(лар)

0

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз