在另一个 C++ 文件中包含无类头文件

including class-less header file in another c++ file

本文关键字:文件 包含无 C++ 另一个      更新时间:2023-10-16

我有一个头文件如下:

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 没有在这个范围内声明。我的意思是它对头文件中的每个变量都抱怨同样的事情。我无法弄清楚这里发生了什么。

我刚刚找到了一个解决方案。我没有包括所需的头文件:

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

我将这两个文件包含在头文件中,并且此错误消失了。