tutorialspoint make interfaces implement how generic c++ interface concept

make - cómo implementar interfaces en C++?



how to make interfaces in c++ (3)

Posible duplicado:
Forma preferida de simular interfaces en C ++

Tenía curiosidad por saber si había interfaces en C ++ porque en Java, la implementación de los patrones de diseño consiste principalmente en desacoplar las clases a través de interfaces. ¿Hay una forma similar de crear interfaces en C ++?


C ++ no tiene conceptos integrados de interfaces. Puede implementarlo usando clases abstractas que contienen solo funciones virtuales puras . Como permite la herencia múltiple, puede heredar esta clase para crear otra clase que contendrá esta interfaz (me refiero a la interfaz de objeto :-)) en ella.

Un ejemplo de muestra sería algo como esto:

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; }


La interfaz no es más que una clase abstracta pura en C ++. Idealmente, esta class interfaz debe contener solo métodos públicos virtual puros y datos de static const . p.ej

class interfaceA { public: static const int X = 10; virtual void foo () = 0 virtual int get () const = 0; virtual inline ~interfaceA () = 0; }; interfaceA::~interfaceA () {}


No hay concepto de interfaz en C ++,
Puede simular el comportamiento utilizando una clase abstracta .
La clase abstracta es una clase que tiene al menos una función virtual pura. No se pueden crear instancias de una clase abstracta, pero se pueden crear punteros y referencias a ella. Además, cada clase que hereda de la clase abstracta debe implementar las funciones virtuales puras para que se puedan crear instancias.