Я работаю над проектом C ++.
У меня был класс с его функцией, затем я понял, что некоторые из этих функций не были связаны с этим классом, а были просто математическими функциями, поэтому я решил перенести их в пространство имен.
Мой первый вопрос: какое расширение файла подходит для пространства имен c ++?
У меня есть файл constants.h, в котором я планирую сохранить глобальные константы, например, PI.
Прямо сейчас:
#include <math.h>
const double PI = M_PI;
У меня есть пространство имен, о котором я говорил ранее, сейчас оно называется: specificMath.h
#include <stdlib.h>
#include "constants.h"
... more code
У меня есть gaussian.cpp:
#include "gaussian.h"
#include "specificMath.h"
#include <iostream>
... more code
Этот файл включает в себя основную функцию, которая сейчас ничего не делает, я просто не могу заставить весь проект компилироваться без основной ...
У меня есть gaussian.h, где я ничего не включаю, это неправильно?
Третий класс, у которого нет атрибутов, только методы (опять же, это неправильно или не красиво?). truncatedFunctions.cpp
#include "specificMath.h"
#include <stdlib.h>
#include "truncatedFunctions.h"
#include "gaussian.h"
using namespace specificMath;
И его truncatedFunctions.h, где, опять же, я ничего не включаю.
И четвертый класс, куда я включаю
#include "margin.h" //Its header, where I'm not including anything
#include "gaussian.h"
#include "specificMath.h"
using namespace specificMath;
Когда я "делаю" это, кажется, что он компилируется нормально, но когда он попадает в связующую часть, я получаю МНОГО ошибок, говорящих о том, что вещи в моем классе margin.cpp были сначала определены в truncatedFunctions.cpp
Я схожу с ума. Я понятия не имею, почему это происходит, или как это решить. Я был бы очень признателен, если бы кто-нибудь мог мне помочь, и, пожалуйста, любой дополнительный совет был бы полезен, так как я действительно стараюсь узнать как можно больше с этим проектом. Спасибо!