Comment je vais faire pour convertir un (char *) en (const char *) dans C++ ?
MErci,
Comment je vais faire pour convertir un (char *) en (const char *) dans C++ ?
MErci,
Normalement ça suffit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part satic_cast<const char*>( ton char * )
Il n'a pas reconnu static_cast, dois-je faire un #include ?
static_cast est un mot-clé du standard c++. Si ton compilateur ne le reconnais pas, ça signifie que tu ne compiles pas en c++.
Je me demande si l'erreur n'est pas plus bête que ça.
Si anas.eh a fait un copier-coller du code de kujara, en oubliant de rajouter le t à satic_cast, il aura forcément une erreur. Mais par contre en revenant au forum, il aura bien écrit static_cast parce que c'est ce qu'il a crû lire.
Oui, non ? Sinon, c'est qu'il ne compile effectivement pas en C++.
Ou alors il a fait un copier coller, croyant lire static_cast, et n'a pas bien regardé les messages d'erreur... De retour sur le forum, il a écrit "static_cast" car c'est ce qu'il a toujours pensé.![]()
De plus, le static_cast n'est même pas nécessaire si tu passes par une variable intermédiaire: Le cast est implicite.
(non-testé)
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 void Fonction(char *sz) { cout << "non-const : " << c << endl; } void Fonction(char const * scz) { cout << "const : " << c << endl; } void Test() { char * sz1 = "abc"; Fonction(sz1); //Appelle la version non-const Fonction(static_cast< char const * >(sz1)); //appelle la version const char const * scz1 = sz1; Fonction(scz1); //Appelle la version const }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
De toute manière il n'y a pas besoin de faire de static_cast, c'est automatique (et heureusement)...
Sinon, quand vous recevez un A* il vous faudrait faire un (static_cast<const A*>(ptr)) pour appeler une fonction constante !![]()
nicroman : Je pense qu'il est ici question de forcer l'appel à la fonction constante alors qu'une fonction non-constante existe...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager