J'avais le code C++ suivant, où l'argument de mon constructeur dans la déclaration avait une constance différente de la définition du constructeur.Incompatibilité entre la définition du constructeur et la déclaration
//testClass.hpp
class testClass {
public:
testClass(const int *x);
};
//testClass.cpp
testClass::testClass(const int * const x) {}
j'ai pu compiler ce sans avertissement en utilisant g ++, si cela compilation de code ou au moins donner quelques avertissements? Il s'avère que le compilateur C++ intégré sur Solaris 64 bits m'a donné une erreur d'éditeur de liens, et c'est ainsi que j'ai remarqué qu'il y avait un problème.
Quelle est la règle sur la correspondance des arguments dans ce cas? Est-ce que c'est aux compilateurs?
Veuillez fournir une référence à la norme. –
J'ai écrit à ce sujet ici, si vous avez besoin de plus d'exemples: http://stackoverflow.com/questions/269882/c-const-question/274888#274888 –
@ onebyone.livejournal.com: Merci. –