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

    [c++]problema programmazione ad oggetti

    Salve a tutti.

    ho un problema di programmazione di base che non riesco a risolvere;
    sto programmando con le glut un giochetto OpenGl di astronavi.Per diversi calcoli da fare su posizione e movimenti devo sfruttare delle funzioni per reciclare codice.Il problema sta nel fatto che per ogni astronave esiste un oggetto che memorizza la posizione(scritto in c++) mentre il resto del codice e' scritto in c tradizionale per la gestione dei appunto dei movimenti.

    pensate ad una situazione di questo tipo:

    codice:
    Astronave astro1(x,y,z); 
    //creata un oggetto di tipo Astronave dalla classe Astronave 
    //con coordinate x y e z e che si chiama astro1 
    
    modificapos (traiettoriax, traiettoriay, traiettoriaz)
    {
    ...
    
    //questo e' il metodo che modifica la posizione 
    
    astro1.modpos(x,y,z); 
    
    ...
    
    }


    Dentro modificapos ci sara' una chiamata ad una funzione specifica scritta in cpp che andra' a variare gli attributi di astro1.Chiaramente sara' una funzione tipo astro1.modpos(x,y,z);
    Il problema e' che la funzione che modifica la posizione mi serve per riutilizzare lo stesso codice con diverse astronavi(astro1, astro2, astro3 etc).Solo che non riesco a sostituire astro1.modpos(x,y,z) con una chiamata a funzione astratta.

    Come posso generalizzare la chiamata a funzione astro1.modpos(x,y,z) e riutilizzare il codice per diverse astronavi istanziate?
    E' eventualmente possibile istanziare un oggetto generico che puo' assumere valori diversi per ogni chiamata che faccio di modificapos ?


    Grazie per l'attenzione.

    PS:e' necessario mantenere la stessa struttura dei linguaggi,
    ovvero devo avere gli oggetti istanziati con il c++ ed il resto del codice in c tradizionale.

  2. #2
    nessuno ha idea di come fare???

  3. #3
    IO non capisco come fai a usare le classi del C++ in un codice C

  4. #4
    ok, innanzi tutto devi importare la classe che genera gli oggetti...
    se ad esempio nella mia cartella c'e' una classe scritta in c++ che si chiama persona.cpp dove chiaramente c'e' un costruttore chiamato persona(char capelli, char occhi, int anni) puoi istanziare in un file chiamato societa.c una persona cosi:

    persona XVincentX(marroni, neri, 23);

    una volta istanziato XVincentX potremmo accedere o modificare i suoi valori solo se in persona.cpp sono stati definiti dei metodi per modificare gli attributi. Facciamo finta che una volta all'anno l'eta' debba aumentare. Per cui in societa.c ci sara' la seguente chiamata:


    XVincentX.compleanno();

    e int compleanno(void) in persona.cpp non fara' altro che fare il seguente codice:

    int compleanno (void){
    anni=anni+1;
    return anni;
    }

    comunque sia adesso ho capito anche come poter costruire una funzione generica che modifichi gli oggetti senza doverli esplicitamente citare.Basta semplicemente usare un puntatore all'oggetto ed usare quello per accedere a tutti i metodi definiti...

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.