Включить определенную функцию из заголовочного файла в код на C++
В Python можно импортировать определенные наборы функций из разных модулей, а не импортировать весь файл
например:
Вместо того, чтобы использовать import math
и используя print math.sqrt(4)
, импортируя функцию напрямую:
from math import sqrt
print sqrt(4)
И это работает просто отлично.
Где как в C
а также C++
нужно включать весь заголовочный файл, чтобы иметь возможность использовать только одну функцию, которую он предоставляет. Например, в C++
#include<iostream>
#include<cmath>
int main(){
cout<<sqrt(4);
return 0;
}
C
Код также будет похож (не то же самое).
Возможно ли, что так же, как это было в случае с Python, можно включить в программу только одну функцию из заголовочного файла?
пример: включая только sqrt()
функция от cmath
?
Можно ли это сделать?
1 ответ
Нет, это невозможно. В C++ отсутствует настоящая модульная система, поэтому у нас остались препроцессорные включения. Предложение добавить новый тип модульной системы не попало в C++11. См. Модули C++ - почему они были удалены из C++0x? Вернутся ли они позже? для получения дополнительной информации об этом предложении.
Если речь идет о вашей собственной библиотеке, ваш единственный шанс - разбить библиотеку на более мелкие независимые библиотеки. Если библиотека не ваша и / или вы не можете ее изменить, вам придется с ней жить. Но в чем вообще проблема?