Bonjour,
je travail aujourd'hui sur une abstraction des sockets (C) et des Apis reseaux en general (unix/windows) et j'ai eu une idee que j'aimerais exploiter mais j'aurais besoin de votre savoir a tous
j'aimerais faire un heritage de structure, en l'occurence la structure sockaddr_in.
J'ai donc commencer a coder une jolie structure mais je ne sais pas comment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <netinet/in.h> struct sockaddr_in { short sin_family; // e.g. AF_INET unsigned short sin_port; // e.g. htons(3490) struct in_addr sin_addr; // see struct in_addr, below char sin_zero[8]; // zero this if you want to }; struct in_addr { unsigned long s_addr; // load with inet_aton() };
initializer les variables de la structure dont j'herite,
_ etant donner que ce sont des structures issue du C, elles n'ont pas de constructeur, donc on oublie
_ La solution serait de faire une method plutot que d'utiliser le constructeur
Si vous aviez une solution pour utiliser l'initalisation du constructeur ca serait super.
(il est vrai que plutot que de refaire une method, je pourrais faire comme dans l'overload de l'operateur =)
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 struct Asockaddr_in : public sockaddr_in { Asockaddr_in(const short family, const unsigned short port, const Saddr addr, const char* zero) : sin_family(family), sin_port(port), sin_addr(addr), sin_zero(zero) {} const Asockaddr_in& Asockaddr_in::operator=(const Asockaddr_in& from) { if (this != &from) { this->sin_family = from.sin_family; this->sin_port = from.sin_port; this->sin_addr = from.sin_addr; this->sin_zero = from.sin_zero; } return *this; } };
Partager