0

C のバックグラウンドを持つ私は、最初の OOP プロジェクトの完成に近づいています。ファイルを開くために基本クラスで使用する ifstream オブジェクトに関連する設計上の問題を考えていました。その後、同じストリームを使用して、派生クラスによるさらなる操作を行いたいと考えています。このメンバーのみをプロテクト メンバーとして定義したので、派生クラスでプロテクトがカプセル化を破ることができました (良い習慣を身に付けたいと思います)。ストリーム オブジェクトへの参照を返すゲッター関数を定義する必要がありますか? ifstreamオブジェクトはコピーできないため、問題になる可能性があります。最初に目にするのは...

ベスト、ウムト

4

1 に答える 1

1

protected派生クラスが基本クラスと同じ I/O 機能を持つことが設計に不可欠な場合は、カプセル化 を維持するのに理想的です。

カプセル化とは、すべてが である必要があるというprivate意味ではなく、特定のクラスの各データまたはコード メンバーが、クラスの設計された目的を達成するために最小限のクラス ユーザーのセットにのみ表示されることを意味します。publicつまり、コーディングが簡単になるという理由だけで、すべてを作成しないでください。

基本クラスと派生クラスの I/O 関数を階層外のコードに公開する場合にのみ、publicgetter が必要です。ちなみに、参照を返すことはコピーを意味するものではありません。

于 2010-12-02T16:30:13.717 に答える