Страницы

Поиск по вопросам

понедельник, 15 июля 2019 г.

Логика в stdafx.h

Я имею main.cpp условного содержания:
#include "stdafx.h" using namespace std;
int main(int argc, char *argv[]) { Classname classname(argc, argv); //body }
Classname описан в Classname.cpp:
#include "stdafx.h" using namespace std;
class Classname{ public: Classname(int ArgumentsAmount, char *ArgumentsList[]) {} };
Так же stdafx.h:
//includes #include "Classname.cpp"
Логика такова: Classname мне надо использовать во многих классах (main как пример), сам Classname использует функции многих библиотек из stdafx.h, если все оставить так, как выше, то будет ошибка на стадии компиляции
'Classname':'class' redefinition
Как можно реализовать максимальную удобность, чтобы не прописывать в каждом классе, использующем функции из Classname код
#include "Classname.cpp"


Ответ

Добавлять с помощью include cpp файл можно. Но это как то не очень ожидаемо. Правильно вынести Ваш класс в h файл и добавить туда #pragma once (или классический header guard #ifndef #define #endif и уже это h файл добавить в stdafx.h.
Если же Вы в каждом файле будете добавлять #include "Classname.cpp", то это не избавит Вас от вышеуказанной ошибки.

Комментариев нет:

Отправить комментарий