Le C++ n'a pas de concepts intégrés d'interfaces. Vous pouvez l'implémenter en utilisant classes abstraites qui ne contient que fonctions virtuelles pures . Puisqu'elle permet l'héritage multiple, vous pouvez hériter de cette classe pour créer une autre classe qui contiendra alors cette interface (je veux dire, interface objet :) ).
Un exemple serait quelque chose comme ceci -
class Interface
{
public:
Interface(){}
virtual ~Interface(){}
virtual void method1() = 0; // "= 0" part makes this method pure virtual, and
// also makes this class abstract.
virtual void method2() = 0;
};
class Concrete : public Interface
{
private:
int myMember;
public:
Concrete(){}
~Concrete(){}
void method1();
void method2();
};
// Provide implementation for the first method
void Concrete::method1()
{
// Your implementation
}
// Provide implementation for the second method
void Concrete::method2()
{
// Your implementation
}
int main(void)
{
Interface *f = new Concrete();
f->method1();
f->method2();
delete f;
return 0;
}
0 votes
Egalement duplicata de stackoverflow.com/questions/318064/
1 votes
Avez-vous vraiment besoin d'interfaces ?
C++
dispose d'un vaste support pour les modèles. Il suffit d'écrire vos fonctions en recevant des modèles, et de s'assurer que les types passés ont les méthodes requises pour ne pas provoquer d'erreurs de compilation, afin de ne pas imposer à vos utilisateurs d'hériter de quoi que ce soit pour utiliser vos méthodes.