Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Fonction dans une structure ? [ Archives / Au secours ] (mayti)

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é 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 wxFILE-->Creer un fichier, l' éditer et l'enregistrer [ par satellite34 ] Bonsoir,Je cherche à creer un fichier, à l' éditer et à l'enregistrer;Je fais ca avec la classe wxFILE;          file = new wxFile();      &n Passage structure en argument. [ par macbang ] Bonjour,J'ai un petit problème avec mon programme.Le but est de découper une chaine de caractère, puis de l'analyser dans une autre fonction.je déclar filemapping et un peu plus [ par PADYVEN ] bonjour,bon j'ai un probleme tout simple je pense qui concerne le file mappingje veux partager des données entre deux applicationsc'est données sont e structure de données et fichier [ par lenet2009 ] <link rel="Fi suppression de fichier en fonction de la date de création [ par koma777 ] Bonjour à tous, Je cherche actuellement un programme automatisant la suppression de fichier en fonction d'une date antérieur. En effet, j'ai une camer


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.