Code::Blocks: Problem mit includes



  • Hallo,

    Meine CB Projektdatei umfasst momentan 2 .cpp und 2 Headerdateien. Am Anfang der main.h inkludiere ich <string>. In der zweiten Headerdatei wird dann ein string benötigt, beim kompillieren heißt es jedoch dass <string> hier nicht deklariert wurde.

    <string> überall neu zu inkludieren kann ja nun die Lösung nicht sein, was also tun?



  • Post dein Code.



  • //dir.h
    
    #include <dirent.h>
    #include "main.h"
    
    class Directory
    {
        private:
    
        DIR *maindir ;
        struct dirent *entry ;
    
        public:
    
        bool open(string path);
        bool close();
    };
    
    //main.h
    #include <string>
    
    class Gui
    {
      //blablabla
    
    };
    


  • guert schrieb:

    <string> überall neu zu inkludieren kann ja nun die Lösung nicht sein, was also tun?

    Doch überall, wo du das Symbol (Type, Function, ....) brauchst muss du es includieren, dass heisst aber nicht, dass der Compiler immer wieder das gleiche Übersetzungeinheit neulesen muss. Vorausgesetzt du benutzt ein Guard.
    wie dies hier:

    #ifndef MY_HEADER_HPP
    #define MY_HEADER_HPP
    
    class MyClass
    {
    };
    
    #endif
    

Anmelden zum Antworten