このデザインを選ばない理由:
// A.hpp
class A
{
public:
void do_something();
};
// A.cpp
#include "A.hpp"
#include <vector>
std::vector<int> impl_database_for_do_something;
static void impl_helper_for_do_something(const std::vector<int>& database){}
void A::do_something(){ impl_helper_for_do_something(impl_database_for_do_something); }
これの代わりに:
// A.hpp
#include <vector>
class A
{
public:
void do_something();
private:
std::vector<int> database_for_do_something_;
void helper_for_do_something(const std::vector<int>& database){}
};
ソース ファイルで定義された変数と静的関数を使用して、実装の詳細を非表示にしてコンパイルを高速化できますか? そうでない場合、この設計 (継承以外) の何が問題になっていますか?