1

私はこのcppファイルを持っています。

dsets.cpp:

   #ifndef DSETS_CPP
   #define DSET_CPP

   //Adds elements to the DisjointSet data structure. This function adds
   //x unconnected roots to the end of the array.
   void DisjointSets::addelements(int x){
   }

   //Given an int this function finds the root associated with that node.

   int DisjointSets::find(int x){
   return 0;
   }

   //This function reorders the uptree in order to represent the union of two
   //subtrees
   void DisjointSets::setunion(int x, int y){

   }

   #endif

そしてこのヘッダーファイル

dsets.h:

   #ifndef DSETS_H
   #define DSET_H
   #include <iostream>
   #include <vector>
   using namespace std;


   class DisjointSets
   {
   public:
   void addelements(int x);
   int find(int x);
   void setunion(int x, int y);

   private:
   vector<int> x;

   };

   #include "dsets.cpp"
   #endif

そして、「DisjointSetsは宣言されていません」というエラーが表示され続けます
~
~

4

1 に答える 1

3

あなたはあなたの包含を後方に持っています。ヘッダー (.h) ファイルを .cpp ファイルからインクルードする必要があります。現在のようにその逆ではありません。

.cpp ファイルは、コンパイラが実際にコンパイルするファイルです。.h ファイルは、単に .cpp ファイルに含めることを意図しています。

さらに、.cpp ファイルの内容を囲むガードを含める必要は#includeありません。ヘッダー ファイルの内容を保護する必要があるだけです。

于 2010-04-21T00:57:19.327 に答える