Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    [C++] problema dipendenza file Header

    Salve ragazzi io ho i seguenti due file header

    State.h e StateManager.h

    State.h:

    codice:
    class State {
        public:
            //StateManager manager;
            virtual void init()=0;
            virtual void update()=0;
            virtual void destroy()=0;
    };
    StateManager.h
    codice:
    class StateManager {
        public:
            StateManager();
            template <class T> State changeState();
            void update();
        private:
            State currentState;
    };


    Non capisco come mai se in State manager dichiaro "State *currentState"(con *) non da errrore mentre se ometto * da errore

    codice:
    1>------ Inizio compilazione: Progetto: SuperMarioBros, Configurazione: Debug Win32 ------
    1>  Menu.cpp
    1>c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\statemanager.h(12): error C2259: 'State': impossibile creare un'istanza di classe astratta
    1>          a causa dei seguenti membri:
    1>          'void State::init(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(7): vedere la dichiarazione di 'State::init'
    1>          'void State::update(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(8): vedere la dichiarazione di 'State::update'
    1>          'void State::destroy(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(9): vedere la dichiarazione di 'State::destroy'
    1>  Generazione del codice in corso...
    1>  Compilazione in corso...
    1>  StateManager.cpp
    1>c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\statemanager.h(12): error C2259: 'State': impossibile creare un'istanza di classe astratta
    1>          a causa dei seguenti membri:
    1>          'void State::init(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(7): vedere la dichiarazione di 'State::init'
    1>          'void State::update(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(8): vedere la dichiarazione di 'State::update'
    1>          'void State::destroy(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(9): vedere la dichiarazione di 'State::destroy'
    1>  Generazione del codice in corso...
    1>  Compilazione in corso...
    1>  main.cpp
    1>c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\statemanager.h(12): error C2259: 'State': impossibile creare un'istanza di classe astratta
    1>          a causa dei seguenti membri:
    1>          'void State::init(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(7): vedere la dichiarazione di 'State::init'
    1>          'void State::update(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(8): vedere la dichiarazione di 'State::update'
    1>          'void State::destroy(void)': è astratta
    1>          c:\users\gaten\documents\visual studio 2013\projects\supermariobros\supermariobros\state.h(9): vedere la dichiarazione di 'State::destroy'
    1>  Generazione del codice in corso...
    ========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========
    Inoltre se notate io necessito che nella classe State ho un attributo di tipo StateManager(quindi dipendo dal file StateManager.h) e nella classe StateManager di un attributo State(quindi dipendo da State.h) , come posso risolvere questa dipendenza?
    Ultima modifica di gaten; 09-10-2014 a 00:17
    Con i sogni possiamo conoscere il futuro...

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.