Principale utente con più risposte
interfacce

Domanda
-
ciao.
Partendo dal presupposto che in c++ un interfaccia puo' essere vista come una classe astratta pura (sbaglio?)con metodi virtuali puri (metodi virtual con = 0) da implementare.
Come posso implementare piu di un interfaccia?
Mi viene in mente l'eredità multipla , ma è il metodo corretto?
Forse mi sbaglio , ma vedo il programmare con le interfacce un metodo un po differente dai metodi standard di programmazione del c++, è più utilizzato in java o c# da quello che ne so.
Come viene visto questo metodo di programmazione dalla comunità c++?
grazie.
Risposte
-
giuseppe500 wrote:
ciao.
Partendo dal presupposto che in c++ un interfaccia puo' essere vista come una classe astratta pura (sbaglio?)con metodi virtuali puri (metodi virtual con = 0) da implementare.BTW le interfacce sono il punto di partenza di tecnologie come COM a fine anni 90 e del nuovo WinRT della settimana scorsa.
C++ non ha mai stabilito uno standard binario e credo che questo sia il motivo per cui il concetto di interfaccia non è mai stato forgiato nel linguaggio.
Dal momento in cui a C++ aggiungi una serie di specifiche per cui riesci a condividere uno standard binario (COM, Corba, WinRT) ecco che l'interfaccia (che poi a basso livello non è nulla di più che una vtable) diventa importante.
In WinRT si parla esplicitamente di ABI (Abstract Binary Interface).Come posso implementare piu di un interfaccia? Mi viene in mente l'eredità multipla , ma è il metodo corretto? Forse mi sbaglio , ma vedo il programmare con le interfacce un metodo un po differente dai metodi standard di programmazione del c++, è più utilizzato in java o c# da quello che ne so. Come viene visto questo metodo di programmazione dalla comunità c++?
Si, è corretto. Probabilmente non ne senti parlare perché purtroppo è molto più diffusa la cattiva abitudine di scrivere codice C compilato con il compilatore del C++.
Raffaele Rialdi http://www.iamraf.net
Weblog: http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - http://www.ugidotnet.org/
Raffaele Rialdi [MVP] My articles and videos: http://www.iamraf.net Italian blog: http://blogs.ugidotnet.org/raffaele- Contrassegnato come risposta Nicolò ZilioModerator lunedì 3 ottobre 2011 05:02
Tutte le risposte
-
Ciao,
Per utilizzare le classi astratte (che puoi pensare come interfaccie anche se non lo sono) l'unico modo è appunto l'ereditarietà multipla, potendo quindi implementare quante classi astratte hai bisogno.
Personalmente uso poco le classi astratte.
Puoi approfondire le classi virtuali su MSDN Library.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/- Proposto come risposta Nicolò ZilioModerator lunedì 3 ottobre 2011 05:02
-
giuseppe500 wrote:
ciao.
Partendo dal presupposto che in c++ un interfaccia puo' essere vista come una classe astratta pura (sbaglio?)con metodi virtuali puri (metodi virtual con = 0) da implementare.BTW le interfacce sono il punto di partenza di tecnologie come COM a fine anni 90 e del nuovo WinRT della settimana scorsa.
C++ non ha mai stabilito uno standard binario e credo che questo sia il motivo per cui il concetto di interfaccia non è mai stato forgiato nel linguaggio.
Dal momento in cui a C++ aggiungi una serie di specifiche per cui riesci a condividere uno standard binario (COM, Corba, WinRT) ecco che l'interfaccia (che poi a basso livello non è nulla di più che una vtable) diventa importante.
In WinRT si parla esplicitamente di ABI (Abstract Binary Interface).Come posso implementare piu di un interfaccia? Mi viene in mente l'eredità multipla , ma è il metodo corretto? Forse mi sbaglio , ma vedo il programmare con le interfacce un metodo un po differente dai metodi standard di programmazione del c++, è più utilizzato in java o c# da quello che ne so. Come viene visto questo metodo di programmazione dalla comunità c++?
Si, è corretto. Probabilmente non ne senti parlare perché purtroppo è molto più diffusa la cattiva abitudine di scrivere codice C compilato con il compilatore del C++.
Raffaele Rialdi http://www.iamraf.net
Weblog: http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - http://www.ugidotnet.org/
Raffaele Rialdi [MVP] My articles and videos: http://www.iamraf.net Italian blog: http://blogs.ugidotnet.org/raffaele- Contrassegnato come risposta Nicolò ZilioModerator lunedì 3 ottobre 2011 05:02
-
Ciao giuseppe500,
Sei riuscito a trovare una soluzione alle tue domande? Se invece hai ancora dei dubbi o dei problemi riguardo le interfaccie in C++ non esitare a postare nel forum.
Saluti,
Nicolò
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/