C++相談室 part137at TECHC++相談室 part137 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト700:デフォルトの名無しさん 18/09/24 13:35:23.36 cpSL59m30.net オーダーの問題じゃなくて、C++にはゼロオーバーヘッドの原則があるんだから ゼロオーバーヘッドに出来るものはゼロオーバーヘッドにするんだよ、標準はその手本なんだから それにオーダーなんか処理内容でなんぼでも変わるだろ せいぜい数十万要素のコンテナしか使わないプログラムだから仮想テーブルなんかどうでもいいと主張する奴の言うことは正しいかもしれないが 数兆個の要素を扱う人にはそんなもの慰めにならん 701:デフォルトの名無しさん 18/09/24 13:56:47.91 IXp/Ejzw0.net >>685 >インターフェイスを単一継承前提で考えるって、どんな教育を受けるとそうなるのかな 型に対する静的制約を実現するにあたり、多重継承は助けにならないからですだが… >あらゆるメソッドが基底クラスに集中するなんて事例あるか? 上とまとめて理由を述べる 今、add()メソッドを備えるインターフェースA、sub()メソッドを備えるインターフェースBがあったとして、 加減算ができる具象クラスDやEは、それぞれAとBを多重継承したら一応はできる ・・・(1) しかし、このバージョンのDやEは「加減算ができるクラス」という静的制約を満たしているとは言えない なぜなら、DとEは全く別のクラス扱いになるから、DとEを共通に扱える関数を書けないので… 「加減算ができるクラス」という制約の正しい書き方は、AとBを継承するインターフェースCを定義して、 DやEにCを継承させる(単一継承)とらざるおえない ・・・(2) なおいうまでもないことだがテンプレートにはそんな制限は無い。(1)のバージョンのD、Eに対して 問題なく「加減算ができるクラス」という制約をかけられる(Cにメソッドを集中させる必要が一切ナッシング 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch