2

私はそのフレーズを含む12以上のqstを見てきましたがno appropriate default constructor available、私自身の問題を解決するものはありません.

これは非常に基本的な C++ の qst です (私はまだコツを学んでいるので)。その単純さに目がくらんでいる場合は、事前に申し訳ありません。引数のないテンプレート化されたコンストラクターを持つクラスを継承しようとしています。そのような:

class Base {
public:

template<class T>
Base() {
  T *t = this;
  //more irrelevant stuff
}

}

私はもう試した

class Derived : public Base {
public:
  Derived() : Base() {

  }
}

class Derived : public Base {
public:
  Derived() {

  }
}

無駄に。どちらの場合も、エラー メッセージが表示されますno appropriate default constructor available。これを行うにはどうすればよいですか?これが不可能な場合、その理由を説明できますか?

コンストラクターを次のようにセットアップしたときに機能しましたtemplate<class T> Base(T *t)(テンプレート引数をパラメーターとして使用)。

ps重要な場合、私のコードではDerived別のクラスにも継承しています。

4

1 に答える 1