[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/13 10:33 / Filesize : 185 KB / Number-of Response : 779
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part66



1 名前:デフォルトの名無しさん [2009/01/11(日) 11:21:38 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part65
pc11.2ch.net/test/read.cgi/tech/1230341243/

760 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 20:35:38 ]
特に問題はないと思うけど、インターフェイスだと分かるようなクラス名にするとか工夫した方がいいかも
結局は規約次第だと思うが

761 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 20:59:23 ]
>>760
レスありがとうございます。
やっぱり規約や、実装者の意識の問題になりそうですよね。
個人(自分だけ)での開発なので、その辺の問題は薄そうですが・・・
コンパイラで上手くカスタマイズして、
間違った実装したときに警告とか出せればいいんですけどね。

762 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 21:03:35 ]
>>759
struct IHoge {virtual ~IHoge();};
struct IFoo : IHoge {};
struct IBar : IHoge {};

class Piyo : IFoo, IBar {};
Piyo piyo;
このとき、(IHoge*)(IFoo*)&piyo == (IHoge*)(IBar*)&piyoが
真になるとは限らないということを許容できないなら、仮想継承を使うべきと言っておく。

処理系間や多言語間での互換性を高めるため、仮想継承を使っていないMSのCOMでは、
これが理由でポインタの比較が面倒(仮想継承の代わりに規約で縛りを入れて対処している)。

763 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 21:45:10 ]
>>762
operatorの再定義のことを言ってる?
よく分からん。

764 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:00:25 ]
>>763
仮想継承しなければ、IFooの部分オブジェクトのIHogeとIBarの部分オブジェクトのIHogeは別物ということ。

インタフェースという元のお題からは外れるが、IHogeに非静的メンバ変数xがあれば、
IFoo側のxとIBar側のxは、仮想継承しないなら別々、仮想継承したら同一の存在だろ。
(かなり乱暴な言い方だけど)
それと同じ話。単にメンバ変数がないからポインタの比較でもしないと問題が発覚しないだけで。

765 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:20:17 ]
教科書に書いてある内容なんだから
「仮想継承」も調べておいた方がいいとかで済ませればいいのに

766 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:49:51 ]
>>762
レスありがとうございます。
仮想継承はよく理解してなかったんで、Wikipedia とかで調べてました。
多重継承する上で理解しておかないといけない概念ですね。
ありがとうございました。

767 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:52:40 ]
おまえらスレがもったいないから
>>765さんが教科書で覚えたことはいちいち説明するなよ。
ググレカス。

768 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:56:49 ]
俺もC|Java|C#|VB厨だから仮想継承を調べてみた
たしかにこれはググればわかる気がする
今後は namespace C++{ 仮想継承 } とか名前空間で囲んでくれると名前的にわかりやすい
RDFでも可



769 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 13:17:27 ]
namespaceは神
これさえあればC言語風に書けるしなw
クラス?
そんなもんいらね。

770 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 13:26:09 ]
namespaceはCに取り込まれるべきだと思うね
コメントの//より優先されるべきだった

771 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 14:31:19 ]
namespaceだとC++と同じだから、namekukanでCに取り込んだら
どうだろうか

772 名前:デフォルトの名無しさん [2009/04/20(月) 14:33:16 ]
programminglang::C::namespaceでいいよ。

773 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 15:40:24 ]
namespace 入れてくれれば enum を気兼ねなく使えるしな

namespaceだとC++と同じだから、miniascapeでCに取り込んだらどうだろうか

774 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 19:37:14 ]
普通に
namespaceでいいよ。だからさっさと取り込んでくれ。

775 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:17:27 ]
namespiceでいいよ

776 名前:デフォルトの名無しさん [2009/04/20(月) 22:20:40 ]
namaespaceでいいよ

777 名前:デフォルトの名無しさん [2009/04/20(月) 23:33:28 ]
namaekukanだろjk

778 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:35:43 ]
無名名前空間も頼む。
staticいちいち付けるの面倒なんじゃ。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<185KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef