C++ 编译错误:调用基类型构造函数时转换无效
我试图在MinGW-64lljvm下编译,这是一个不大的程序。但我陷入了一个让我发疯的错误 代码如下: 后端.hC++ 编译错误:调用基类型构造函数时转换无效,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:
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++编程初学者。