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.
Citation:
'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'
voila la déclaration des deux class
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;
}