Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]problema input e template

    ciao.
    Utilizzo questo esempio perchè è il primo di una serie che mi viene in mente e che devo risolvere:
    ho un oggetto CRenderer che si deve andare a prendere due valori:
    1)la posizione
    2)eventuali bottoni premuti

    ora , vorrei realizzare un sistema per configurare questi due input in modo che possano arrivare da qualsiasi strumento di input: mouse , tastiera , joypad.

    con le funzioni virtuali è molto semplice , basta creare una classe base che ha 3 funzioni virtuali posizione, bottoni e update e implementarle in ogni classe di controllo di input con la logica specifica di quello strumento di input.

    probabilmente la implementero cosi , ma prima volevo chiedervi se è possibile implementare il tutto coi template,

    per questo avevo pensato che le classi di input implementano le funzioni come quelle virtuali ,anche se non sono virtuali, solo che ho un problema :
    1)se incapsulo nella classe Crenderer il gestore di input devo usare tre tipi diversi Input<Cmouse>,Input<Ckeyboard> ecc...

    2)se rendo CRenderer una classe template che probabilmente è quello che dovrei fare mi vincolo, e questo è un problema ricorrente , nel senso che se voglio incapsulare la classe template crenderer<xxxx> non dispongo della classe base , quindi dovrei implementare tanti tipi CRenderer e questo non è generico.

    forse si puo usare un traits che ritorna per il tipo crenderer il tipo che ho deciso di usare come CMouse o CKeyboard o CJoyPad?
    e tutte le volte che ho una classe CRenderer incapsulata richiamo questo traits che mi ritorna l'input corrente che ho scelto nel traits, non so , ma ho cercato di esporre cio che non capisco su template e incapsulazione.

    grazie.

  2. #2
    Consiglio: non complicarti la vita per niente. Questo è uno dei casi in cui l'astrazione del polimorfismo si mappa perfettamente sul problema e lo risolve in maniera semplice ed elegante: perché ti vuoi male e vuoi far su un pasticcio di template?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie del consiglio ho capito Mitaly.
    ciao

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.