none
interfacce RRS feed

  • 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.
    lunedì 26 settembre 2011 08:41

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
    martedì 27 settembre 2011 07:23

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/
    martedì 27 settembre 2011 05:07
    Moderatore
  • 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
    martedì 27 settembre 2011 07:23
  • 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/
    giovedì 29 settembre 2011 05:20
    Moderatore