begin process at 2012 02 12 12:49:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Fonction dans une structure ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction dans une structure ?

samedi 26 mars 2005 à 18:21:06 | Fonction dans une structure ?

mayti

Bonjour, voilà j'esseye d'utiliser une fonction dans une structure pour par exemple effacer un fichier:

struct FICHIER
{
    char *path;
    static void delete();
};

je l'utiliserais comme ça:

FICHIER file;
file.path = "c:\\fichier.exe";
file.Delete < ici ça doit appeller la fonction delete()

void Delete(char *File)
{
DeleteFile(File)
}

Le code compile mais je dois mal utiliser la fonction dans la structure, comment faut il faire ?
et aussi comment passer le paramétre file.path à Delete() juste avec file.Delete ?


samedi 26 mars 2005 à 19:13:45 | Re : Fonction dans une structure ?

AlexMAN

Membre Club

Avec le plus grand des etonnements, je viens d'essayer de 'mettre' une fonction dans une structure et ca marche..Il faut utiliser un pointeur de fonction dans ta structure :

#include <stdio.h>
#include <stdlib.h>

struct fonc {
  int (* pCoucou)(char *);
};

int Coucou(char *szBuffer)
{
 printf("coucou");
 return 0;
}

int main()
{
 struct fonc Func;

 Func.pCoucou = Coucou;
 Func.pCoucou("Hello");

 system("PAUSE");
 return 0;
}

Voila, je ne sais pas du tout s'il est 'correct' de faire ce genre d'operations en C, mets toi au C++, je crois savoir que ce genre de trucs est la base.

+2(p - n)

samedi 26 mars 2005 à 19:36:27 | Re : Fonction dans une structure ?

steve_clamage

Au niveau de la synthaxe ca serait plutot:
(*Func.pCoucou)("Hello");

Et oui, meme si c'est possible, le C n'offre pas de support pour la programmation orientée objet donc se mettre au C++ est une solution.
Il existe aussi des headers en C permettant de faire de la programmation orientée objet et générique à l'aide de jeux de macros, mais c'est trés laborieux, ca ne peut etre une solution uniquement pour les envirronements dépourvus de compilateurs C++ (ou de cfront).
samedi 26 mars 2005 à 20:29:05 | Re : Fonction dans une structure ?

mayti

Merci bien :)

Et aussi le 2éme probléme:  pour effacer le fichier je fais : (*file.pDelete)(file.path);

comment faire ça sans préciser
(file.path) ? donc qu'il récupére lui même file.path

Merci.


samedi 26 mars 2005 à 21:11:41 | Re : Fonction dans une structure ?

steve_clamage

Tu ne peux pas, c'est possible en C++ car l'adresse de l'instance est passée en paramètre caché (pointeur this), mais en C tu dois passer explicitement file.path en paramètre, ou plus généralement l'adresse de l'instance.
samedi 26 mars 2005 à 21:19:16 | Re : Fonction dans une structure ?

mayti

ok, si tu as un code d'exemple pour le pointeur this je veux bien ;)


samedi 26 mars 2005 à 21:45:11 | Re : Fonction dans une structure ?

steve_clamage

Un exemple ok, mais c'est du C++ (pas de support en C)

#include <string>

struct FICHIER
{
    FICHIER(const std::string & p = "" ) : path(p) {}
   void delete()
  {
       
DeleteFile(path.c_str()); // ou DeleteFile(this->path.c_str());
  }

private:
 
std::string path;
};


FICHIER file("c:\\fichier.exe");
file.delete();



Cette discussion est classée dans : fichier, fonction, file, structure, delete


Répondre à ce message

Sujets en rapport avec ce message

Integration fonction C [ par metek ] Bonjour!!Voila j'ai une ptite question sur les API!!!J'ai fait un petit programme qui liste un fichier texte cherche un mot entré et recupere le reste Fonction de lecture de fichier [ par bastet1978 ] Bonjour, je suis nouveaux en c, et je veux utiliser une fonction pour ouvrir mes fichiers (eviter a chaque foix de tester si ouverture ok ... etc) Voi pb avec fonction [ par kyript ] bonjourvoila  j'ai une fonction connect   qui marche tres  bien  mais si je la lance plusieur fois de suite,  a un certain moment le programme se ferm fonction qui retourne une structure [ par lamiaa1984 ] Bonjour tout le Mondeje souhaite lire un ficher et mettre ses valeurs dans des variables, puis je veux affecter ces variable dans des variable d'une s fonction fread lit bizarrement un fichier texte [ par bilel59 ] Bonjour à tous, voici mon problème : j'écris dans le fichier vect3.txt 3 floats grâce à la fonction fwrite, cela se passe bien cependant, lorsque je v fonction avec un type file* [ par vercd7am ] Bonjour, j'ai ecrit quelques lignes de code pour pouvoir lire un fichier txt. [code=cpp]int main() { int c; FILE *fichier = NULL; fichi structeure en C [ par samissam ] Bonjour, j'ai des données dans un fichier txt et je veux écrire une structure en c qui va contenir le type de mes données. mon fichier contient: des SMTP Base64 Débutant... [ par bisnn ] Bonjour a tous, Je cherches un moyen d'envoyer un mail en smtp avec un fichier joint... Après plusieurs recherche je sais maintenant qu'il est nécess


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales