こんにちは、高木です。

今回はそんなに目新しい話題ではありません。前回は割愛したgeometry_managerクラスの基本コマンド(関数呼出し演算子)を多重定義して、もう少し充実させていきます。

前回は長くなるので割愛したメンバー関数を今回は作り込んでいきます。地味な作業ですが必要ですからね。

まずはおさらいとして、geometry_managerクラスの基本コマンドを実現するメンバー関数(関数呼出し演算子)を見ていきましょう。

これは前回掲載したコードの抜粋です。このメンバー関数では、1個以上のウィジェットと0個以上のオプションを指定する前提になっています。

しかし、実際にはウィジェットは1個だけ指定することが結構ありますし、オプション無しの場合も少なくありません。それらにも対応した多重定義を行って利便性を向上していきます。

多重定義したコードは次のようになります。

全部個別に実装すると保守性が悪くなります。ウィジェットが1つだけの場合は特別扱いした方がよさそうだと考えて、このようにしました。

次回は、これらのメンバー関数をもう少し一般化して、configureコマンドなどにも対応できるようにしていきたいと考えています。