Мое определение класса распространяется по заголовкам и исходным файлам:
// T.hpp
class T {
public:
void foo();
};
// T.cpp
void T::foo() {
}
If T :: foo
должен использовать некоторую вспомогательную функцию, которая должна быть видна только T
, какое из следующих решений лучше?
// T.hpp
class T {
public:
void foo();
private:
void helper();
};
// T.cpp
void T::foo() {
helper();
}
void T::helper() {
}
// T.hpp
class T {
public:
void foo();
};
// T.cpp
namespace {
void helper() {}
}
void T::foo() {
helper();
}
Есть ли какая-нибудь разница, кроме того, что в первом случае я добавлю больше функций в заголовочный файл?