C++ 编译错误:调用基类型构造函数时转换无效

C++ 编译错误:调用基类型构造函数时转换无效,c++,c++11,templates,compiler-errors,mingw-w64,C++,C++11,Templates,Compiler Errors,Mingw W64,我试图在MinGW-64lljvm下编译,这是一个不大的程序。但我陷入了一个让我发疯的错误 代码如下: 后端.h class JVMWritter { ... static char id; ... }; class FunctionPass { ... explicit FunctionPass (char &pid) : <initialization here> {} ... }; 后端.cpp char JVMWriter::id = 0; JVMWriter:

我试图在MinGW-64lljvm下编译,这是一个不大的程序。但我陷入了一个让我发疯的错误

代码如下:

后端.h

class JVMWritter {
...
static char id;
...
};
class FunctionPass {
...
explicit FunctionPass (char &pid) : <initialization here> {}
...
};
后端.cpp

char JVMWriter::id = 0;

JVMWriter::JVMWriter(): FunctionPass(&id) {}
现在,FunctionPass在Pass.h中声明如下:

Pass.h

class JVMWritter {
...
static char id;
...
};
class FunctionPass {
...
explicit FunctionPass (char &pid) : <initialization here> {}
...
};

我明显的问题是:为什么它抱怨我试图进行无效的转换?我在这些片段中没有看到这样的尝试。

FunctionPass(id)
替换
FunctionPass(&id)

char&pid
声明
pid
作为对
char
的引用,而你传递
&id
,它是指向
char
的指针,谢谢!的确是这样,谢谢。这确实是一个容易解决的问题。我还是C++编程初学者。