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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
error: no match for call to `(Csock) (std::string&, int&, network_type)'
alors que mon contructeur ne semble pas avoir de problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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