Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di drudox
    Registrato dal
    Sep 2011
    Messaggi
    93

    [C++] poliformismo , strano comportamento ?

    Non riesco a capire perche` un metodo dichiarato privato nella classe derivata sia accessibile trammite puntatore alla classe base ! ... sto dimenticando qualcosa sulla Vtable ?

    codice:
    # include <iostream>
    
    using namespace std;
    
    class Base {
    	public:
    	virtual void print() = 0;
    };
    
    class X : public Base {
    	private:
    	void print() { cout << "private X::print()" << endl ;}
    };
    
    
    
    int main(){
    
      Base* bp = new X ;
    
      bp->print();
    
      return 0;
    }
    C
    C Saluti .. Il DrudoX
    C
    STOP
    END

  2. #2
    Gli specificatori di accesso sono una cosa gestita completamente a compile time; se nella classe base è dichiarato come public e accedi al metodo tramite un puntatore a classe base allora lo puoi richiamare senza problemi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di drudox
    Registrato dal
    Sep 2011
    Messaggi
    93
    gia` .. dimenticavo .. pero` e` un po strano ...

    Grazie 1000 per la delucidazione !!
    C
    C Saluti .. Il DrudoX
    C
    STOP
    END

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 © 2025 vBulletin Solutions, Inc. All rights reserved.