我正在整理一个 C++ 类,但我遇到了一个可以修复但不太明白的错误。
我正在尝试使用以下标头(main.h):
#include <git2.h>
class Test
{
public:
private:
git_repository gitRepo;
};
和以下文件(main.cpp):
#include "main.h"
int main(int argc, char *argv[]){
Test test;
}
但它给了我一个“Test::gitRepo'使用未定义的结构'git_repository'”。结构实际上并不是未定义的,因为如果我使用指向结构的指针而不是结构本身......
git_repository * gitRepo;
...它编译得很好。
git_repository 的类型声明如下:
typedef struct git_repository git_repository;
我 grepped 了整个包含树,这是代码中唯一的 typedef 或 struct 定义。这是否表明实际的结构定义隐藏在实际的库实现中,但不包含在标头中?