- C++相談室 part111
939 :デフォルトの名無しさん[sage]:2014/04/04(金) 08:29:34.22 ID:ziFJe0J7 - 皆さんレスありがとうございます
>>938 BにtemplateつけたくなったらIAにもつけなくてはならなくなった、みたいな感じで template<typename Data> class A : public IA<Data>{ vector<B<Data> > member; template<typename Data> class B{ Data data; public: B(IA<Data> *owner) void xxx() { m_owner->func(&data); } template<typename Data> class IA{ virtual void func(Data *){} }; みたいになるのかな >>935 えーと、となると インターフェースにメンバ関数テンプレートを持たせるのはアリか? という質問になりますね
| - C++相談室 part111
948 :929[sage]:2014/04/04(金) 19:17:02.12 ID:ziFJe0J7 - 今帰宅しました
皆さんレスありがとうございます >>942 相互参照NGの理由はジョン・ラコスの「大規模C++ソフトウェアデザイン」で書かれています 確か ・コンパイル・リンク時のコストが増大すること ・お互いに単独で使用できないので単体試験ができない 等が理由に挙げられていたと思います >>943 ありがとうございます^^ >>930 概念的に独立したクラスが相互参照しているわけではなく、 Graph,Edge,Vertexみたいな感じの関係のクラスなんです 例えがパッと浮かばなかったので>939ではレス返せませんでした、すみません
|
|