我有以下 C++ 代码,其中声明中构造函数的参数与构造函数的定义具有不同的常量。
//testClass.hpp
class testClass {
public:
testClass(const int *x);
};
//testClass.cpp
testClass::testClass(const int * const x) {}
我能够使用 g++ 在没有警告的情况下编译它,这段代码应该编译还是至少给出一些警告?事实证明,64 位 solaris 上的内置 C++ 编译器给了我一个链接器错误,这就是我注意到存在问题的原因。
在这种情况下,匹配参数的规则是什么?这取决于编译器吗?