2012-04-25 1 views
0

У меня есть проект с 3 файлами.Как отделить функции, определения классов и основной код внутри проекта?

Один файл DBheader.h заголовка, который включает в себя:

  • объявления классов (с их меньшим определением функций члена)

DBdefinitions.cpp файл с:

  • Увеличенного определения функций члена для классы в DBheader.h

и, наконец, DBmain.cpp файл, который содержит:

  • Главный код
  • Некоторые крупные (не memeber) функции, которые используют классы, определенные в DBheader.h

Я бы предпочтительно хотел двигаться эти функции где-то сделать мой файл DBmain.cpp менее загроможден. Должен ли я перемещать их в файл DBdefinition.cpp или мне нужно создать новый отдельный файл .cpp для функций, не являющихся членами?

Вот пример моего кода, если вышеизложенное неясно.

//DBheader.h 

//libraries.. 

class course{ 
//member data.. 

void printinfo(); 

} 

-

//DBdefinitions.cpp 

#include "DBheader.h" 
void course::printinfo(){/*do stuff*/} 

-

//DBmain.cpp 

#include "DBheader.h" 
typedef map<int,course> record; 
void fileinput(record &map); 
int main(){ 
//stuff 
} 
void fileinput(record &map){ 
//lots of code 
} 
+0

Однако вам нравится. –

ответ

1

Вы должны организовать бесплатные функции, которые являются частью общественного интерфейса аналогичным образом вы использовали для class определения: заголовок с декларации и файла реализации с реализациями.

Если они предназначены для конкретной единицы перевода, сохраните их в этом файле реализации.

Все свободные функции должны быть объявлены внутри namespace (названы в честь публичных, анонимных для «частных» бесплатных функций).

+0

Справа. Спасибо за совет. – QuantumO