Tom's Guide > Forum > Programmation > Interfaces en c++ et methodes virtuelles pures

Interfaces en c++ et methodes virtuelles pures

Forum Programmation : Interfaces en c++ et methodes virtuelles pures

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour tout le monde,
je débute en c++ et j'ai quelques soucis en ce qui concerne l'utilisation d'interfaces! tout d'abords quelle est la définition précise de la notion d'interface sous c++? Les methodes doivent elles etre toutes pures? l'interface doit elle contenire un constructeur(destructeur)? Comment l'implementer (fichier .h autre .cpp comme pour une classe objet) ?

Si quelqu'un a un exemple complet d'interface ca m'aiderait ennormément!!!

Merki

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

C'est la première fois que j'utilise ce forum je ne sais pas si ma question est innapropriée!! j'ai pas encore eu de réponse alors qu'apparement ca va vite!

Répondre à datche

En C++, la notion d'interface n'existe pas vraiment. C'est en Java que cette notion a été introduite pour éviter de gérer l'héritage multiple.
Parles-tu d'interface au même sens que java ou interface IDL pour composants (COM/DCOM/ActiveX ou CORBA) ?

Si c'est plus implémenter une interface comme en Java, il faut créer une classe abstraite mais dont toutes les méthodes sont virtuelles pures.
Ne mets pas de constructeurs/destructeurs, il y a le constructeur par défaut. De toutes façons, si tu gère ça comme une interface, tu ne dois pas mettre de code dedans, et comme c'est une classe abstraite, le compilateur ne te laisserait pas compiler une instanciation de ton interface.

pour rendre la classe abstraire il te faut une méthode virtuelle (avec le mot-clé "virtual" ) pure (avec "= 0;" à la fin de la déclaration). Tu peux faire un .cpp qui ne fait qu'un include du .h (pour le compiler), où tu peux aussi t'en passant puisque tu n'y mettras rien dedans.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Merci, c'etait en effet une reference aux interfaces Java! quand je cree une classe heritée d'un objet interface j'obtiens l'erreur du compilateur suivant:

C:\Documents and Settings\Administrateur\Bureau\TP\MonteCarloOptionPricer.o(.text$_ZN13IOptionPricerC2Ev[IOptionPricer::IOptionPricer()]+0x8) In function `ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplERKi':

[Linker error] undefined reference to `vtable for IOptionPricer'

pourtant j'ai bien rajouté les fichiers dans la liste des fichiers du projet: je travaille sous Dev-C++!!

Répondre à datche

problème résolu !! merci

Répondre à datche
Tom's Guide > Forum > Programmation > Interfaces en c++ et methodes virtuelles pures
Aller à :

Il y a 242 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens