次のクラスを想定します。
class FileManipulator
{
static InputTypeOne * const fileone;
InputTypeTwo *filetwo;
public:
FileManipulator( InputTypeTwo *filetwo )
{
this->filetwo = filetwo;
}
int getResult();
};
FileManipulator
は、両方のファイルのデータを使用して から出力を取得しますgetResult()
。これは、複数の反復と、さまざまなオブジェクトに対する via 反復filetwo
の複数の構築を意味します。入力は、たとえば、いくつかの .csv データベースです。タスク全体で同じままです。FileManipulators
InputTypeTwo
InputTypeOne
プログラム自体はマルチモジュラーであり、上記の操作はその小さな単位にすぎません。
static
私の質問は、オブジェクト指向のパラダイムとカプセル化に従って、そのフィールドをどのように処理できるかです。このフィールドは、さまざまなプログラムの実行で固定値ではないため、何らかの方法で初期化する必要があります。私が C++ のルールを理解している限り、フィールドを設定するメソッドを作成することはできませんが、フィールドをパブリックにして、任意のクラス (FileManipulator
または友好的なクラス) の外で初期化することは、カプセル化と矛盾しているように思えます。
その場合、私は何ができますか?私の頭に浮かぶ唯一のことは、Cの方法でそれを行うことです。つまり、十分に分離されたコンパイルユニットで初期化します。私にできることは本当にそれだけですか?それは専門的な方法でどのように解決されますか?
編集
当初の意図であった定数へのポインタを定数へのポインタに修正しました。