Bonjour,

Je tente de compiler une classe d'envoi d'emails via utilisation d'un socket.

J'ai cependant ce message d'erreur lors de la compilation :
expected `)' before '=' token
, à la ligne où je déclare le constructeur de ma classe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Mail(ipSMTP="serveurmail.com", port=25)
Je suspecte que le problème vienne des deux attributs de type string déclarés avant la méthode init de la classe :

Voici le contenu de mail.h contenant la classe Mail :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
#if defined (WIN32)
    #include <winsock2.h>
    typedef int socklen_t;
#elif defined (linux)
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #define INVALID_SOCKET -1
    #define SOCKET_ERROR -1
    #define closesocket(s) close(s)
    typedef int SOCKET;
    typedef struct sockaddr_in SOCKADDR_IN;
    typedef struct sockaddr SOCKADDR;
#endif
 
#include <string>
#include <iostream>
 
 
using namespace std;
 
class Mail
{
      private :
 
      public :
             SOCKET sock;
             SOCKADDR_IN sin;
             char buffer[255];
             int erreur;
             int port;
             string message;
             string ipSMTP;
 
              Mail(ipSMTP="serveurmail.com", port=25)
              {
                   #if defined (WIN32)
                    WSADATA WSAData;
                    erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
                     #else
                        erreur = 0;
                     #endif
 
                   message = "";
 
                   /* Création de la socket */
                    sock = socket(AF_INET, SOCK_STREAM, 0);
 
                    /* Configuration de la connexion */
                    sin.sin_addr.s_addr = inet_addr(ipSMTP.c_str());
                    sin.sin_family = AF_INET;
                    sin.sin_port = htons(port);
              }
 
              ~Mail()
              {
                   /* On ferme la socket précédemment ouverte */
                        closesocket(sock);
 
                        #if defined (WIN32)
                            WSACleanup();
                        #endif
              }
 
              void envoi()
              {
                   //Instructions d'envoi d'email par la socket via le SMTP
              } 
};
Merci d'avance de votre aide !

Niusha