Utilisation d'interface en c++

Signaler
Messages postés
100
Date d'inscription
jeudi 1 avril 2004
Statut
Membre
Dernière intervention
9 juin 2014
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
salut à tous,
je taf sur vc6 et je souhaiterais utiliser dans mon prog des interfaces, equivalent en java de implements et public interface...

public interface ISearch {
SearchResult searchInImage(byte[][] pSearchImage, MacroBlock pMacroBlock);
}
public class FirstOrder implements ISearch
{
...
}

qqun peut il me dire quels sont les etiquettes à utiliser en c++ pour la declaration d'interface(public interface) et pour son implementation(implements)...

merci beaucoup.

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
L'interface est une invention de Java; pour un équivalent C++ il faut regarder l'héritage multiple. En gros une interface Java est une classe en C++. Comme tu peux faire hériter une classe de plusieurs autres, ca reveint à utiliser un interface Java.
Par contre fais attention l'héritage multiple c'est un peu casse-gueule, c'est pour ca qu'ils l'ont pas mis dans Java.
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Il me semblait plutôt que l'équivalent de l'interface Java étant la classe virtuelle pure...
C'est à dire, chaque fonction est déclarée comme ça dans la classe :
virtual void MaFonction() = 0;

Après, la classe qui dérive de cette classe de base doit obligatoirement implémenter les fonctions virtuelles pures.

Il me semble que c'est ça les interfaces Java non?

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oui aussi mais en Java le fait qu'on doive obligatoirement redéfinir toutes les fonctions je le vois plutot comme une restriction. Et puis les classes virtuelles pures ont leu équivalent en Java avec le mot clé abstract.
Je crois qu'n java on utilise une interface quand on ne peut plus utiliser l'héritage, parce qu'il n'y a pas d'héritage multiple