Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C++] ereditarietà

    Salve fragazzi, ho un problema a capire una cosa

    quando ho un classe base con funzione membro (esempio) int somma(), e una classe derivata che non ha questa funzione membro.

    Quando voglio utilizzare questa funzione mebro nella classe derivata, la devo richiamare come:
    base::somma() oppure solo somma() che differenza c'è?

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    mettere base davanti al metodo serve se hai una funzione in overload o override nella classe derivata.. così il compilatore sa che deve chiamare quella della classe base

  3. #3
    scusa e se lancio solo somma() nella classe derivate (che non contiene somma()) non viene esegutia quella della classe base?

    la mia classe ereditaria, eredita le funzioni membro della base, dunque se io ho sia in base che derivata la stessa funzione, la devo lanciare con base:: per lanciare quella della base?


    ma se io somma ce l'ho solo in base la posso lanciare come somma() e basta?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da Johnny_Firpo
    ma se io somma ce l'ho solo in base la posso lanciare come somma() e basta?
    Direi proprio di sì.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ti ho detto che la parola chiave base serve qunado c'è "ambiguità".. se hai somma() in classe base e in derivata una chiamata a somma() sarà sempre eseguita quella della classe derivata.. se metti base fai capire al compilatore quale funzione eseguire..

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.