Quel type d'argument choisir ?
Bonjour tout le monde,
j'ai un code qui fonctionne qui ressemble à ceci :
Code:
1 2 3 4 5 6 7 8 9 10
| long strToLong(string str, int base) {
char * p;
long var_strToLong = strtol(str.c_str(), &p, base);
if(*p != '\0'){
var_strToLong = 0;
}
return var_strToLong;
} |
On passe à cette valeur une chaine de caractère (str) et la fonction convertit cette chaine en long. Jusqu'ici pas de soucis.
Mais on me précise que :
Citation:
Cette fonction prend un argument de type chaîne de caractères, sachant qu'on doit pouvoir lui passer, indifféremment, un litéral chaîne (ex. "hello"), un argument de la ligne de commande (type : char const *) ou une variable de type std::string.
Pour cela, à vous de trouver le bon type pour l'argument.
Aucun des arguments n'est censé être modifié par la fonction. Aucun argument de type "objet" ne doit être clôné en appelant la fonction.
Trouvez les bons modes de passage. Ces règles s'appliquent aux fonctions qui suivent aussi.
Et j'voulais donc savoir si un simple 'string str' pouvait gérer tous ces cas ? :?
C'est surtout le "un argument de la ligne de commande (type : char const *)" que j'ai pas compris...
Re: Quel type d'argument choisir ?
Citation:
Envoyé par R'SKaP
C'est surtout le "un argument de la ligne de commande (type : char const *)" que j'ai pas compris...
Il faut que ta fonction accepte un argument de type char const *, c'est tout, c'est le type des arguments d'un programme.
pour le reste, fait des essais !
Re: Quel type d'argument choisir ?
Citation:
Envoyé par jmv
Citation:
Envoyé par R'SKaP
C'est surtout le "un argument de la ligne de commande (type : char const *)" que j'ai pas compris...
Il faut que ta fonction accepte un argument de type char const *, c'est tout, c'est le type des arguments d'un programme.
pour le reste, fait des essais !
Justement c'est ce que je veux faire des essais, mais concrètement comment tester un argument de type char const *
une chaine litteral, j'peux tester ça avec un "hello" par exemple, un std::string aussi mais pour tester un argument de type char const *
j'met quoi ? :?