Foncteurs ( petit problème bêbête )
Bonjour, j'aimerais par l'utilisation d'un foncteur pouvoir passer en argument à une autre fonction ce foncteur auquel je passe les arguments du constructeur et qui me retourne directement la valeur de retour de la surcharge de l'opérateur () . Je suis presque sur de l'avoir déjà vu quelques part et j'essaye d'utiliser ceci à mon tour de cette façon ( réduit au plus simple possible )
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include <iostream>
using namespace std;
class P {
public :
P(char *data) : c_(data) { }
~P() { }
string operator() () const
{
string str = c_;
return str;
}
private :
char *c_;
};
class A {
public :
A() { }
~A() { }
void print( string s)
{
cout << s << endl;
}
};
int main()
{
A a;
a.print(P("hello world"));
return 0;
} |
Bien sur la compilation échoue sur l'appelle de la méthode print qui n'attend pas un objet de type P pourtant je suis presque sur d'avoir vu une méthode qui permettait ce genre d'écriture.
Si quelqu'un pouvait éclairer ma lanterne je lui en serais reconnaissant.