- C++相談室 part113
609 :デフォルトの名無しさん[]:2014/07/28(月) 02:07:29.57 ID:8jrV0efS - エラーになるんですけど、どうやったら良くなりますか
#include <iostream> using namespace std; struct Dog { virtual string name() const = 0; virtual void talk() const { cout << "i am " << name() << endl; } }; struct NameIsJohn { virtual string name() const { return "john"; } }; struct DogJohn : public Dog, public NameIsJohn { }; int main() { DogJohn x; x.talk(); return 0; }
|
- C++相談室 part113
611 :デフォルトの名無しさん[sage]:2014/07/28(月) 02:19:21.18 ID:8jrV0efS - >>610
それは明らかに違う仕様です
|
- C++相談室 part113
613 :デフォルトの名無しさん[]:2014/07/28(月) 02:32:06.03 ID:8jrV0efS - >>612
610は依存関係に変化があるのでまったくの別物です
|
- C++相談室 part113
614 :デフォルトの名無しさん[]:2014/07/28(月) 02:59:13.29 ID:8jrV0efS - http://ideone.com/9ReFXe
この例だとどうでしょうか。 依存関係を変えることなくコンパイルを通したいのです。 依存関係が変わらなければ「既にある」の部分に対してラッパークラスを書くことはできます。 テンプレートで解決できそうな気もするのですが、答えが見つかりません。
|
- C++相談室 part113
620 :デフォルトの名無しさん[sage]:2014/07/28(月) 10:04:54.86 ID:8jrV0efS - >>616
ありがとうございます。 そうなりますか。 使っているモジュールが、例えばCompressBaseからの派生であることを明確にしたいのですが、 それは無理なのでしょうか。
|