Code C++

Résolu
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

2 réponses

  1. Modérateur
    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
    1. Modérateur
      < 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
      1. 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