Code C++

Résolu
medsour Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
medsour Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
< 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   Statut Membre Dernière intervention  
 
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