1

値によって返される別の接続されたクラスのオブジェクトを介して、その機能とデータの一部を公開するクラスがあります。たとえば、begin()メソッドとend()メソッドを介してイテレータクラスを返すコンテナタイプ。イテレータを値で返すので

iterator begin();
const iterator begin() const;

は機能せず、2つの別々のクラスiteratorとconst_iteratorが必要ですが、両方のクラスに同様の機能を実装する必要があるため、コードの再利用の原則に違反しています。

回避策はありますか?コードの再利用と不変の予約の間の妥協点を見つける方法は?

4

1 に答える 1

1

const いいえ。関数とクラスの非 const バージョンを作成する以外の方法で行われるのを見たことがありません。

于 2012-10-02T12:56:36.080 に答える