Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di felpone
    Registrato dal
    Jun 2010
    Messaggi
    182

    [c++]spiegazione scelta metodo

    Salve,
    l'output del codice sottostante é 5 5 2 6 3 . per quanto riguarda il penultimo output, cioe 6, quindi il secondo metodo della classe c non capisco il perche. non dovrebbe aver scelto il primo metodo della classe cin quanto viene passato un parametro di tipo statico c e di tipo dinamico b

    codice:
    class A;
    class C {
    public:
    virtual int method(C *c) {
    return 2;
    }
    virtual int method(A *a) {
    return 6;
    }
    };
    class A {
    public:
    virtual int method(A *a) {
    return 1;
    }
    };
    class B : public A, public C {
    public:
    virtual int method(A *a) {
    return 3;
    }
    virtual int method(B *a) {
    return 4;
    }
    virtual int method(C *c) {
    return 5;
    }
    };
    int main(int argc, char *argv[]) {
    C *a1 = new B();
    C *a2 = new C();
    A *a3 = new B();
    cout << "a1.method(a1) vale " << a1->method(a1) << endl;
    cout << "a1.method(a2) vale " << a1->method(a2) << endl;
    cout << "a2.method(a2) vale " << a2->method(a2) << endl;
    cout << "a2.method(a1) vale " << a2->method(a3) << endl;
    cout << "a3.method(a3) vale " << a3->method(a3) << endl;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non noti una incongruenza nella riga

    cout << "a2.method(a1) vale " << a2->method(a3) << endl;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.