-1

私はC++でコーディングされた3つのクラスを持っています。それらはすべて単純ですが、コンパイラーは多くのエラーを出します。cppファイルとヘッダーファイルの各クラス。考えられる問題は何ですか?その1つが「基本クラス未定義」です。

class re {
  int i;
  int j;
  string a;
  re(int,int,int);
  ~re();
}

class Pre:public re {
  int k;
  public:
    Pre(int,int,int);
   ~Pre();
}

class MPre:public Pre {
  int z;
  public:
      MPre(int);
     ~Mpre(int);
}
4

3 に答える 3

2

考えられる間違い:

  • reクラスコンストラクタは公開されていません。あなたはこれを知っていますか?

  • MPreコンストラクターは1つの入力を取得するため、Preクラスのデフォルトコンストラクターを作成する必要があります。

  • ヘッダーファイルを追加するときは注意してください。たとえば、プレクラスにはクラスのヘッダーファイルが必要です。

  • また、クラスにポインタ変数を追加しない限り、デストラクタを作成する必要はありません。

于 2012-04-19T18:53:10.567 に答える
0

エラーについては、他のクラスが存在するファイルで、クラスが宣言されているファイルをdしundefined base classていないと思います。#includere

于 2012-04-19T18:55:24.433 に答える
0

クラス宣言にセミコロンがありません。また、異なる.h .cppファイル内のすべてのクラスを適切に分離して、不要なコードを必要としない場合に含めないようにします。また、継承の場合は、デストラクタが仮想であることを確認してください。仮想でない場合、メモリリークが発生します。

また、reのコンストラクターはパブリックではなく、パブリックにします。

于 2012-04-19T18:58:14.740 に答える