У меня был следующий код на C ++, где аргумент моего конструктора в объявлении имел константу, отличную от определения конструктора.
//testClass.hpp
class testClass {
public:
testClass(const int *x);
};
//testClass.cpp
testClass::testClass(const int * const x) {}
Я смог скомпилировать это без предупреждений с помощью g ++, должен ли этот код компилироваться или, по крайней мере, давать какие-то предупреждения? Оказывается, встроенный компилятор C ++ на 64-битном Solaris выдал мне ошибку компоновщика, и именно поэтому я заметил, что возникла проблема.
Каково правило сопоставления аргументов в этом случае? Это дело компиляторов?