passage d'argument dans une fonction
j'ai un petit problème de passage d'argument dans une fonction que je ne comprends pas.
j'ai une classe Csock (pour créer des sockets) qui contient une surcharge du constructeur de la forme
Code:
Csock(string address, int port,network_type TCPorUDP);
jusque là rien de bien méchant !
j'ai fais une classe Telnet qui gère une connexion telnet (logique !) qui contient un objet Csock (connexion sur le port 23). Elle a cette forme :
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
| class Telnet
{
public:
Telnet(); // contructeur utilisant comme argument par défaut
//172.17.0.194:23 pour la connexion telnet
Telnet(std::string addr, int port); // contructeur prenant en argument
//l'adresse et le port pour la connexion
//Telnet
~Telnet();
std::string get_notify_addr();
int get_notify_port();
void set_notify_addr(std::string addr);
void set_notify_port(int port);
int sender(std::string commande);
std::string reception();
private:
...
std::string notify_addr;
int reader_port;
Csock reader;
}; |
le problème c'est que quand j'essaie de compiler j'ai un problème à la construction de mon objet Telnet :
Code:
error: no match for call to `(Csock) (std::string&, int&, network_type)'
alors que mon contructeur ne semble pas avoir de problème :
Code:
1 2 3 4 5 6
| Telnet::Telnet()
{
notify_addr.assign( "172.17.0.194");
notify_port = 23;
reader(notify_addr, notify_port, TCP);
}; |
si quelqu'un a un idée, parce que là je suis à court, je comprends pas d'où peut venir mon problème.
pour info, j'utilise code::blocks sous windows
merci d'avance