C++ STRING
Résolu
k-23
Messages postés
256
Date d'inscription
Statut
Membre
Dernière intervention
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
JE VOUDRAIS SAVOIR COMMENT ON PEUT UTILISER UNE VARIABLE DE TYPE STRING DANS UNE CLASS .HPP
EN C++
String b ; ca marche pas
JE VOUDRAIS SAVOIR COMMENT ON PEUT UTILISER UNE VARIABLE DE TYPE STRING DANS UNE CLASS .HPP
EN C++
String b ; ca marche pas
Configuration: Windows 7 Firefox 3.5.7
4 réponses
-
-
est ce que ca veut dire qu'il faut utiliser la stl en faite je veux faire une classe ou je vais faire un objet personne donc je doit avoir un constructeur
dans mon constructeur il ya une fonction qui renvoit le nom de la personne
dans mon hpp
string getNom();// ca marche pas
je voudrais renvoyer le nom de la personne sans utiliser la stl (Standard Template Library)
merci pour laide
-
-
bonjour,
dans Standard Template Library il y a "template". Ce qui veut dire modèle. String n'est pas un modèle. (les modèles c'est comme avec vector<monType> par exemple)
si ça ne fonctionne pas c'est que tu n'as pas mis include <string> dans ton fichier, ou alors c'est que l'erreur est ailleurs.
De plus, pourquoi vouloir faire un programme sans utiliser la STL d'ailleurs ? elle fait partie intégrante du langage C++, c'est dans le standard du langage.-
en fait le travail consiste a ne pas utiliser le stl c pour cela que je suis pas sur si je dois l<inclure je sais que ca marche si je linclu mais si j<inclue est ce que je suis entrain d'utiliser la stl le travail consiste a travailler juste sur le pointeur je suis dans le doute de lutiliser ou non. dapres toi est ce que si je linclu jutilise la stl
merci
-
-
Pardon ! Je me suis trompé !
apparemment, la bibliothèque <string> du C++ fait effectivement partie de la STL.
http://www.cs.purdue.edu/homes/grr/cs422/lab3/stl_strings.html par ex. et bien d'autre (il suffisait de taper "STL string" dans google pour en être sûr d'ailleurs... ) -
pour renvoyer un tableau avec une fonction, il faut renvoyer un pointeur (un tableau, en fait c'est presque comme un pointeur en C / C++)
donc un char *
et ta chaine devra être crée correctement avec new , ou alors tu ne pourras pas la retourner correctement.-
- Exemple :
le plus simple est encore de passer ta chaine que tu veux obtenir en paramètre#include <iostream> #include <cstring> using namespace std; void direSalut(char *); int main(int argc, char *argv[]) { char chaine[20]; direSalut(chaine); cout<< chaine; system("Pause"); } void direSalut(char * argument) { strcpy(argument, "Salut\n"); }
Ceci est la version avec pointeur en retour et new[] :#include <iostream> #include <cstring> using namespace std; char * direSalut(void); int main(int argc, char *argv[]) { char * chaine; chaine = direSalut(); cout<< chaine; delete[] chaine; // important à faire si tu as utilisé new[] ! system("Pause"); } char * direSalut(void) { char * p = new char[20]; strcpy(p, "Salut !\n"); return p; }
-