Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703

    [c++] problemi d'ereditarietà

    allora mettiamo che io ho tre classi:

    class a, class b, class c

    la classe 'a' usa per una sua funzione un dato presente nella classe b, cosìchè faccio:

    class a: public b

    ora la funzione che è nella classe 'a' devo integrarla in una funzione(più ampia) presente nella classe b e c

    ma facendo così ad esempio: class b: public a non funziona... errore:

    'miafunzione' was not declared in this scope

    forse devo fare come nel main che dichiarlo l'oggetto della funzione??? ma dove?nei membri private o nella sezione public??

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Ma tu hai fatto ereditare a da b e poi b da a... non ti sembra un po' insensato???

    class a: public b
    class b: public a

    è un circolo non permesso...

    Mi sa che dovresti riconsiderare la struttura delle classi.. spiega magari il tuo problama che ti diamo una mano..

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    Volevo trovare una soluzione al problema in quanto a me servirebbe avere la possibilità di richiamare una funzione presente in una classe derivata, dalla classe base.
    Se la cosa non regge ditemelo che lascio perdere

  4. #4
    l'ereditarietà consente ad una ipotetica classe A di ereditare i metodi e le istanze pubbliche e protette ad una classe B, che diviene una specie di A estesa.

    Non ha senso ne credo che sia possibile far ereditare a B A e poi far ereditare ad A B, e non avrebbe nemmeno tanto senso... questa tua funzione da "espandere" non la puoi creare in B?
    printf("Programmazione in C!");
    cout<<"Programmazione in C++!";

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    703
    mm, non è che non la posso creare in b, semplicemente ho creato due classi(è un esempio):

    classe dipendente
    classe funzioni

    una delle tante funzioni presenti nella seconda classe, si occupa di leggere da un file, la path è presa però tramite un membro presente nella classe dipendente. E fin qui non ci sono problemi.
    Ora però la funzione appena creata dovrà integrarsi nella classe dipendente e agevolare una funzione più ampia.

  6. #6
    ora, se ho ben capito, tu hai questa situazione:

    classe funzioni:
    - metodo path
    - metodo "ampia"

    classe dipendente:
    - metodo lettura file

    se provi a far ereditare alla classe dipendente, come prima avevi fatto, la classe funzioni, questa sarà:

    classe dipendente:
    - metodo path
    - metodo "ampia"
    - metodo lettura file

    Perciò il tuo approcio al problema non penso sia corretto, se mi potessi spiegare meglio cosa deve fare il programma magari posso aiutarti un po' di più...
    printf("Programmazione in C!");
    cout<<"Programmazione in C++!";

  7. #7
    Secondo me se la tua classe a deve solo accedere ad un valore di b conviene che b sia membro di a e non che a erediti da b.
    É una relazione di possesso e non di ereditarietà.
    ...

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.