Je ne comprends pas pourquoi le code suivant ne produit pas d'erreur, car les arguments passés à l'affichage sont du même type, à savoir char
const
fait vraiment une différence ?
#include<iostream>
using namespace std;
void display(char *p)
{
cout<<p;
}
void display(const char *p)
{
cout<<p;
}
int main()
{
display("Hello");
display("World");
}
EDIT D'après les réponses, le premier affichage n'est jamais appelé, ce qui est correct, tout comme la sortie.
Mais si je faisais comme ça :
int main()
{
char *p="Hello";
display(p);//now first display is called.
display("World");
}
Le compilateur donne un warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Cela signifie-t-il que la chaîne n'est plus considérée comme une constante ?