salut tt le monde,
je veux avoir access à tt les moembres (Privé et public) d'une class, et je ne sais pas exactement comment je doit faire.
j'ai utiliser en 1er lieu l'héritage, mé sa donne des erreurs.
voila la déclaration des deux classCitation:
'c_irc.h' 'In function 'int main(int, char **)':
44 'c_irc.h' 'char *ircconnect::get_irc_server() is inaccessible'
12 'main.cpp' 'within this context'
12 'main.cpp' 'ircconnect is not accessible base of "irccl"'
Makefile '[Build Error] [main.obj] Error 1'
j'utilise DEC-C++ (GCC comme compilateur).
plz dite moi comment faire ... merci
Citation:
#ifndef C_IRC_H
#define C_IRC_H
#include <cstdlib>
#include <cstring>
#include <winsock2.h>
#include <windows.h>
#include <cstdio>
#define ERROR_DEST "__NO_DESTINATION__"
#define NO_CHANNEL "__NO_CHANNEL__"
#define NO_NIKE_DEST "__NO_NIKE_DESTINATION__"
#define MARGE 5
//--- Classe IRC Connect, pour la connexion sur un serveur IRC
class ircconnect {
private:
SOCKET sock;
SOCKADDR_IN sin;
DWORD thread_id;
in_addr addr;
struct hostent *host;
char *nike_name;
char *irc_srv;
char *irc_channel;
int port_srv;
bool in_new_thread;
bool auto_connection;
char *buffer;
void init_socket(void);
public:
~ircconnect();
ircconnect(char *irc_server, char *nikename, int port, bool in_new_thread_);
void irc_join(char *irc_channel);
bool init_irc_connection(void);
bool close_irc_connection(void); // pour férmer la connection
void auto_connect(bool auto_con); // pour verifier si la connexion existe tt jour
bool irc_ping(void);
void stok_recv_message(void);
int send_message(char *destination, char *message, char *command);
char *get_nike_name(void); //trouver mon nikename
char *get_irc_server(void); //trouver l'adresse du serveur
char *get_irc_channel(void); //trouver le nom du channel
int get_server_port(void); //trouver le numero de port
char *get_message(void); //donne la message originalle
//********************************************************//
};
//---- Classe IRCCL pour le traitement des messages
class irccl : ircconnect {
private:
char *nike_name_exp;
char *nike_info;
char *irc_command;
char *irc_message;
char *destination;
bool tochannel;
bool tome;
public:
~irccl();
irccl(void);
// void irc_info(char *irc_msg);
void splitmessage(char *irc_msg); //decoupe le message qui arrive depuis le serveur IRC
char *get_nikename_exp(void); //donne le nikename de l'expediteur
char *get_nike_info_exp(void); //donne la partie abstré du nike name
char *get_command(void); //donne la command evyer avec le message
char *get_nike_destination(void); //donne la destination
char *get_destination(void); //idem
char *deletenewline(char *irc_msg); //supprime le caractaire \n à la fin
char *deletespace(char *irc_command); //surpprime de dernier espace
bool find_expeditor(char *nikenamefind); //chercher un expediteur
bool find_command(char *commandfind); //chercher une commande
bool find_message(char *messagefind); //chercher un message
bool find_destination(char *destination); //chercher une destination
bool is_message(char *irc_msg); //determiner si c'est un message ou non
bool is_ping(char *irc_msg); //determiner si c'est un ping ou non
bool is_tome(void); //determiner si le message et pour moi ou non
bool is_for_channel(void); //determiner si le message et pour le channel ou nn
//********************************************************//
};
#endif
Citation:
#include "c_irc.h"
int main(int argc, char *argv[]) {
irccl irc;
ircconnect irc_c("irc.freenode.net", "GHOST", 6667, false);
irc_c.init_irc_connection();
printf("%s\n", irc_c.get_irc_server());
printf("%s\n",irc.get_irc_server()); // Une erreur ce declance ici
if(irc_c.close_irc_connection()) printf("La connection est ferme\n");
else printf("Impossible de fermer la connction\n");
return 0;
}
