1.Whether я должен поместить объявления классов в своем собственном файле заголовка, и фактической реализации в другом файле?
Вы можете написать определение класса и определение членов класса отдельно в том же заголовочном файле, если вы манипулируете шаблонами. Кроме того, если вы хотите, чтобы ваши члены функционировали в строке, вы можете определить их внутри самого определения класса. В любом другом случае лучше отделить определение класса (файл .hpp) и определение членов класса (.cpp).
2.Если я должен помещать заголовки, как в файле example.h, или в файл example.cpp ?
Это зависит от того, нужны ли эти заголовки в файле example.h или только в вашем файле .cpp.
3.Если все классы нужно использовать, и я включаю файл заголовка класса, в заголовок другого класса, это значит, что я включен в два раза?
Это происходит, если вы не обернуть определения классов с помощью следующих макросов:
#ifndef FOO_HPP
#define FOO_HPP
class {
...
};
#endif
5.Если я использую много классов STL, то, что это хорошая практика, чтобы использовать зЬй: :?
Я думаю, что лучше каждый раз, когда вы можете использовать std::
каждый раз вместо using namespace std
. Таким образом, вы будете использовать только те пространства имен, которые вам нужны, и ваш код станет более читаемым, потому что вы избежите конфликтов пространства имен (представьте два метода, которые имеют одинаковое имя и принадлежат к двум различным пространствам имен).
Но самое главное, где вопрос номер 4 в любом случае?
# 4 достаточно отчетливый, чтобы заслужить свой собственный вопрос. – Cameron
Это достойные вопросы, но объединение всех их в одно «слишком широкое». –