Code C++

Résolu/Fermé
medsour Messages postés 6 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 7 octobre 2006 - 24 sept. 2006 à 16:46
medsour Messages postés 6 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 7 octobre 2006 - 26 sept. 2006 à 12:26
Bonjour,
J'ai un petit probleme avec un programme en C++:
j'ai une classe:

class pere{
public:
std::string reqDate( ) const;
private:
Util::Date date;} où Util est un "namespace dans le fichier "Date.h".

Ma question est comment faire pour que cette fonction retourne un string.
J'ai fais ceci:
inline std::string reqDate( ) const
{ return date; }
mais l'erreur est que la valeur retournée n'est pas un string.
Merci
A voir également:

2 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 sept. 2006 à 00:09
Ben oui car Util::Date n'est a priori pas le type std::string. Ca me semble donc normal que tu aies une erreur.

Si ton type Util::Date à un opérateur d'écriture << défini tu peux faire ça :
#include <sstream>

class pere{
//...
  inline std::string reqDate() const{
    std::ostringstream oss;
    oss << date;
    return oss.str();
  }

};

Bonne chance
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 sept. 2006 à 20:56
< 3 > - C++, convertir en string
[3 - C++, convertir en string] Ajouté par medsour (25/09/2006 à 11:55 GMT+2)

je vois bien ce que vous dites mais le problem est que la fonction est déclarer "const" donc on ne peut pas modifier les parametre d'aprés ce que j'ai apris.
Ou bien?
merci de la réponse


On ne peut pas modifier this et donc ses attributs de classes, ce qui est bien le cas ici. Il faut juste que << soit de type :
ostream & operator<< (ostream & o,const Util::Date & d){
  //...
  return o;
}

Bonne chance
0
medsour Messages postés 6 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 7 octobre 2006
26 sept. 2006 à 12:26
Une autre information que le prof m'a donné et que dans la classe Date il y a une fonction "std::string reqDateFormate( )" qui retour la date en chaine de caractere dont le probleme est reglé: il suffit de retourner "date.reqDateFormate()".

Merci pour ton aide.
0