Salve, sto riscontrando problemi nella compilazione di una libreria con visual studio 2013 ultimate.
In sintesi ho un header dove definisco una classe, quell'header è stato incluso in un altro header perchè un membro di un'altra classe deve ritornare un puntatore a un oggetto derivato dalla prima classe.
Il punto è che nella dichiarazione della seconda classe se scrivo FileInterface, FileInterface* o shared_ptr<FileInterface> come tipo di ritorno della funzione di classe il compilatore ritorna un errore che è FileInterface identificatore non dichiarato oppure aspettato ; prima di * nel caso di FileInterface*. Nel sorgente dove ci sono i metodi membri della seconda classe posso invece usare FileInterface perchè lì l'identificatore è dichiarato infatti posso ritornare (void*)(new FileInterface(....));
Io non riesco proprio a capire per quale assurdo motivo il compilatore mi dica identificatore non dichiarato se l'header è incluso. L'intellisense infatti prontamente mi dice che FileInterface è dichiarato come classe questo a conferma del fatto che non ho sbagliato a scrivere il nome della classe.
|