@valiaOriginariamente inviato da valia
A grandi linee puoi considerare l'header (per la parte riguardante la dichiarazione dei metodi) una interfaccia: se ci fai caso tu dichiari la signature di un metodo così come faresti con una interfaccia in java o c#, poi passi alla sua implementazione
Le tue considerazioni, sono fuorvianti, e gli header in questo contesto non c'entrano un bel nulla.
La risposta concisa ma precisa alla domanda di giuseppe500 è quella data da MItaly.
La mia spiegazione:
In C++ le interfacce, esattamente per come sono definite negli altri linguaggi, non ci sono;
ma c'è l'ereditarietà multipla (non presente "casualmente" nei linguaggi che hanno le interfacce, quali ad esempio il C#, Java e VB), che combinate alle classi astratte pure (o quelle che io chiamo "purissime": aventi solo metodi virtuali puri), possono acquisire, (ed è il programmatore che lo decide), la semantica di interfaccia.
Insomma come al solito, in C/C++ viene delegata al bravo programmatore, la semantica di ciò che sta scrivendo.
Tipici esempi di interfacce realizzate in C++ sono ad esempio le classi con prefisso M in MacApp, ed il prefisso I (se non ricordo male) nella roba microsozz.
@giuseppe500
A proposito di interfacce, è interessante anche dare un'occhiata ai protocolli ed alle categorie di Objective-C.
;-)