begin process at 2012 05 29 13:17:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Methode dans une strucutre


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

Methode dans une strucutre

samedi 31 mars 2007 à 15:13:47 | Methode dans une strucutre

Booster

Membre Club
Bonjour a tous,

Voila je suis entrain de faire un programme en C et j'aimerais faire comme des styles de classe, j'ai vaguement entendu parlé que l'on pouvait faire cela avec des structures et mon probleme est comment coder mes fonctions ?

C'est a dire j'ai ceci :

typedef struct{
    int variables;  
    void fonctions();
}C_Fakeclasse;

Donc aprés je peu faire ceci :
main(){
    C_Fakeclasse maclasse;
    maclasse.fonction();
}

Mais la comment je la code ma fonction c'est a dire en C++ on fait comme ca :

Maclasse::Mafonction(){
    //Moncode
}

Et en C avec une structure on fait comment ?
Car
C_Fakeclasse::fonctions(){
}
Ne marche pas :(
Merci d'avance de vos réponses !


samedi 31 mars 2007 à 15:25:05 | Re : Methode dans une strucutre

yann_lo_san

Le C n'est pas fait pour faire ça...
Mais tu peux toujours utiliser un pointeur de fonction dans ta struct, comme dans les interfaces COM.

samedi 31 mars 2007 à 15:27:06 | Re : Methode dans une strucutre

Booster

Membre Club
Et est ce qu'avec la fonction qui sera pointer dans ma structure je pourais acceder au variables qui a dans ma structure ? comme en c++

Merci
samedi 31 mars 2007 à 15:35:10 | Re : Methode dans une strucutre

yann_lo_san

Il faut que le premier param des fonctions soit un pointeur vers ta struct, comme le fait le ptr this en c++, mais il est caché.

samedi 31 mars 2007 à 15:41:43 | Re : Methode dans une strucutre

Booster

Membre Club

Arf.

Enfet le problème que j'ai est qu'il me faut absolument une fonction qui puisse utiliser des variables mais dont je ne peu les passer en paramètre... :\ le plus simple serai de mettre ces variables en Global mais ceci n'est pas pédagogique :\ et je vais me faire allumer a mon oral a la fin de l'année c'est pour cela que je cherche un moyen d'avoir une fonction qui utilise des variables mais je ne lui passe rien en paramètre et il ne me faut pas de variable globale :\ (Comme une classe en C++ quand on les met en Private:)

(C'est pour une interruption sur un OS9 ^^)


Si tu connais un moyen je suis preneur :)

Merci d'avance !
samedi 31 mars 2007 à 18:38:40 | Re : Methode dans une strucutre

yann_lo_san

Voici la construction pour créer des struct
qui contiennent des fonctions membres :

// Déclaration en avant d'une struct
struct ITest;

// Type fonctions à utiliser (accesseur/mutateur d'1 membre)
typedef void SetVarPtr(ITest*, long);
typedef long GetVarPtr(ITest*);

// Structure contenant les pointeurs sur les fonctions
typedef struct
{
   SetVarPtr* SetVar;
   GetVarPtr* GetVar;

} IVtbl;

// Une interface ITest
typedef struct
{
   long lVar;
   IVtbl* lpVtbl;

} ITest;


// Les fonctions
void SetVar(ITest* This, long lg)
{
 This->lVar = lg;
}

long GetVar(ITest* This)
{
 return This->lVar;
}

// Initialise table des pointeurs vers les fonctions réelles
static const IVtbl IVtblObject = {SetVar, GetVar};

// Déclare, alloue et rempli l'interface
ITest* pTestStruct;

pTestStruct = (ITest*)GlobalAlloc(GMEM_FIXED, sizeof(ITest));
pTestStruct->lpVtbl = &IVtblObject;
pTestStruct->lVar = 0;

// On appelle les fonctions qui accèdent au membre de la struct
pTestStruct->lpVtbl->SetVar(pTestStruct, 0x0a000000);
long lvalue = pTestStruct->lpVtbl->GetVar(pTestStruct);

// Libère
GlobalFree((HGLOBAL)pTestStruct);



Cette discussion est classée dans : methode, fonctions, maclasse, fakeclasse, strucutre


Répondre à ce message

Sujets en rapport avec ce message

AIDE: CHERCHE TUTORIEL SUR LES FONCTIONS GRAPHIQUES [ par Mmuller57 ] je CHERCHE un TUTORIEL sur LES FONCTIONS GRAPHIQUES en C++(tracer une ligne, un cercle, un carrée, un rectangle, un polygone et le tout en C++ !). Je liste de fonctions [ par niconico ] quelqu'un aurait-il l'adresse d'un site ou je pourrait trouver la liste des fonctions en C++; ou au moins celles relatives a la creation, modification problèmes liens entre fichiers C et C++ dans un projet Visual C++ 6.0 [ par nico ] J'ai récupéré un projet contenant des fichiers écrits en C. Le fichier "principal" de ce projet également écrit en C fait appel à des fonctions se tro codes C++ pour TAPI et MAPI [ par Francky ] Bonjour,Je recherches des codes sources C++ pour les les fonctions TAPI (téléphone) et fonctions MAPI (mails).Merci d'avance. Comment utiliser InternetOpen(...), CloseHandle(...) et autres fonctions se rapportant au Web ? [ par Tiot Seb ] Salut amis programmeurs sous Visual C++!J'ai besoin, pour un projet de stage, de pouvoir, ouvrir et fermer Internet Explorer. En fait, je dois créer u classes ou juste fonctions ? [ par madVinz ] Salut!Comment choisir entre faire des classes ou juste des fonctions ???merci, @+ <bios.h>aidez moi aussi pour les fonctions geaphiques sous dev c++ 4.0 [ par riderpro ] Voila il me faut pour dev c++ 4.0 sinon je ne peux pas faire mes progs pleas entrz en contact pour coopération Tableau de correspondance des fonctions c++ et de leur fichier #include [ par guguy ] BonjourJ'aimerais savoir s'il serait possible de trouver un tableau de correspondance entre les fonctions c++ et leur fichier #include (ex : cout -> i Probleme sur une methode [ par kild ] Bonjourje desire crée un exe ki execute via le choix de l'utilisateur un autre executable dont g po les sources et ki utilise des commandes en ligne d Fonctions graphiques de bases [ par Lissyx ] Bonjour, je cherche des fonctions graphiques simple (style tracer un point, une droite, un cercle etc...) pour C++ (sous Win2000Pro, architecture x86


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,265 sec (4)

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