A voir également:
- C/C++ appel de méthode en C
- Appel inconnu - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel annulé iphone - Forum Mobile
- La zone de données passée à un appel système est insuffisante - Windows 11
- Signal d'appel - Forum iPhone
6 réponses
Canard007
Messages postés
5929
Date d'inscription
mercredi 26 mai 2004
Statut
Contributeur
Dernière intervention
18 septembre 2009
215
12 avril 2005 à 18:30
12 avril 2005 à 18:30
heu j vais peu etre dire une connerie mais cela me parait impossible puisque c n'a aucune idée de ce qu'est une methode.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
12 avril 2005 à 19:39
12 avril 2005 à 19:39
lol,
Les canard sont de plus en plus pointilleux de nos jours...
Faut éventuelement passer par une instance de ta classe, non ?(si c comme en java !). Ou alors c'est que tu es trop flémard pour comprendre le programme que tu recopie, sinon tu aurais déjà changé celui-ci de manière à ce que ca marche, ;)
++
Les canard sont de plus en plus pointilleux de nos jours...
Faut éventuelement passer par une instance de ta classe, non ?(si c comme en java !). Ou alors c'est que tu es trop flémard pour comprendre le programme que tu recopie, sinon tu aurais déjà changé celui-ci de manière à ce que ca marche, ;)
++
Salut =)
Oui, c'est comme en Java, il est nécessaire de passer par une instance, mais tu peux nous dire quelle est l'erreur de ton compilo exactement ? parce que "il ne la trouve pas" n'est pas très clair je trouve.
++
Oui, c'est comme en Java, il est nécessaire de passer par une instance, mais tu peux nous dire quelle est l'erreur de ton compilo exactement ? parce que "il ne la trouve pas" n'est pas très clair je trouve.
++
parce que "il ne la trouve pas" n'est pas très clair je trouve.
Ouaip... Erreur de compil', ou d'édition de lien ?
Je veux dire, est-ce que ton fichier ".c" compile, et c'est au moment de créer l'éxé que ça plante, ou bien direct sur le ".c" ???
Quand à :
Oui, c'est comme en Java, il est nécessaire de passer par une instance
Forcément... Une méthode d'instance possède un argument caché, qui correspond à this... Si on a pas d'instance, ce paramètre ne peut être initialisé, donc ça foire...
Je veux dire
Pour appeller du C++ depuis du C, le plus simple est de transcrire (à l'identique) ton fichier ".c" en ".cpp" et de le recompiler à la mode C++.
Il y a bien des astuces, style faire jouer le C99 (syntaxe très proche du C++), etc... Mais c'est finaud et loin d'être élégant. Sur le coup la "méthode bourrin" est plus adaptée. Tu veux faire du C++ ? Fais le jusqu'au bout.
Rien, en C++ N'OBLIGE à faire des classes. Tes modules C compileront parfaitement en C++, et te permettrons d'utiliser namespaces, classes, fonctions surchargées et autres.
Ouaip... Erreur de compil', ou d'édition de lien ?
Je veux dire, est-ce que ton fichier ".c" compile, et c'est au moment de créer l'éxé que ça plante, ou bien direct sur le ".c" ???
Quand à :
Oui, c'est comme en Java, il est nécessaire de passer par une instance
Forcément... Une méthode d'instance possède un argument caché, qui correspond à this... Si on a pas d'instance, ce paramètre ne peut être initialisé, donc ça foire...
Je veux dire
a->maMethode(b, d, e); // est en fait traduit en : maMethode(a, b, d, e);
Pour appeller du C++ depuis du C, le plus simple est de transcrire (à l'identique) ton fichier ".c" en ".cpp" et de le recompiler à la mode C++.
Il y a bien des astuces, style faire jouer le C99 (syntaxe très proche du C++), etc... Mais c'est finaud et loin d'être élégant. Sur le coup la "méthode bourrin" est plus adaptée. Tu veux faire du C++ ? Fais le jusqu'au bout.
Rien, en C++ N'OBLIGE à faire des classes. Tes modules C compileront parfaitement en C++, et te permettrons d'utiliser namespaces, classes, fonctions surchargées et autres.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est à l'édition des liens que le bas blesse.
Je vais donc prendre la solution de tout passer en C++ , c'est compliqué mais bon si ça fonctionnne c'est le principal ;)
Je vais donc prendre la solution de tout passer en C++ , c'est compliqué mais bon si ça fonctionnne c'est le principal ;)
la solution de tout passer en C++ , c'est compliqué
Nan !!! Tu reprend le même fichier, tu change de nom, et tu met l'option qui va bien pour que le compilo traite du C++ et pas du C. N'IMPORTE QUEL programme C, à ma connaissance, doit pouvoir compiler en C++.
Tu rajoute juste l'include de la classe, et tu modifies les endrois où, du coup, tu utilises ta classe, et basta...
Mais si tu préfère tout passer en classe propres, je t'avoue, c'est toujours mieux !!!
Nan !!! Tu reprend le même fichier, tu change de nom, et tu met l'option qui va bien pour que le compilo traite du C++ et pas du C. N'IMPORTE QUEL programme C, à ma connaissance, doit pouvoir compiler en C++.
Tu rajoute juste l'include de la classe, et tu modifies les endrois où, du coup, tu utilises ta classe, et basta...
Mais si tu préfère tout passer en classe propres, je t'avoue, c'est toujours mieux !!!