私はこれについて確信が持てず、少し検索しても特に役立つものは何も見つかりませんでした。したがって、いくつかのクラス C1 および C2 を含む名前空間を持つヘッダー ファイルがあるとします。
namespace my_namesp {
class C1 {
public:
blah1;
...
private:
blah2;
...
};
class C2 {
public:
junk1;
...
private:
junk2;
...
};
} //-End namespace
実装 (CPP) で、C1、C2 のすべてのメンバー関数が定義されていると仮定し、次に、C1 と C2 に共有させたい共通データ、たとえば列挙型と文字列配列があるとしますが、そうではありません。必ずしもどちらかのクラスの一部である必要はありません。次に、次のことを行うことは合法ですか (注: ビルドして正常に動作します)。この実装をクライアント アプリケーションのライブラリとしてエクスポートする場合はどうでしょうか。これはまだ機能しますか?何らかの理由で、この種のデザインは嫌われているのでしょうか? おそらく、OOP の特定の機能がこの種のことに適しているのではないでしょうか?
namespace my_namesp {
enum some_list_num {
list_member1,
list_member2,
...,
list_length
}
static const std::string string_list[] = {
str1,
str2,
...,
strN
}
return_type C1::some_func1(...) {
...
}
...
return_type C1::some_func1(...) {
...
}
} //-End my namespace
アイデア/修正をお寄せいただきありがとうございます。