2017-11-08 48 views
-1

ファイル++:は、次のように私は、ヘッダファイルを持っている

int64_t *id; 
int *sz; 

void setupUnionFind(int numNodes) 
{ 
    id = (int64_t *)malloc(numNodes*sizeof(int64_t)); 
    sz = (int *)malloc(numNodes*sizeof(int)); 
    for (int64_t i = 0; i < numNodes; i++) 
    { 
    id[i] = i; 
    sz[i] = 0; 
    } 
} 

次のように私は別のC++のファイルにこれを含めています:

#include "headerGile.h" 
#include "gtest/gtest.h" 

class UnionFindMethodsTest : public testing::Test { 
    protected: 

    //constructor 
    UnionFindMethodsTest(){ 
    int numNodes = 10; 
    setupUnionFind(numNodes); 

    } 

    //destructor 
    virtual ~UnionFindMethodsTest(){ 

    } 

}; 
other functions below this ...... 

私はこれをコンパイルするとファイルでは、ヘッダファイルのid、szがこのスコープ内で宣言されていないことを示します。つまり、ヘッダファイル内のすべての変数について同じことが言われます。 私はここで何が起こっているのか理解できません。

+0

あなたの言うことが真実なら、問題を引き起こすためにC++ファイルにコードは必要ありません。ちょうど '#include" headerGile.h "'がそれを行います。しかし、このコードでは、あなたが記述した問題は発生しません。あなたが言及していない何か他のものがあります。 –

答えて

1

解決策が見つかりました。私は必要なヘッダファイルを含めていませんでした。

#include<stdint.h> 
#include<stdlib.h> 

私はヘッダファイルで、このファイルの両方を含め、このエラーがなくなっています。

関連する問題