C++ class forward declaration

后端 未结 8 624
春和景丽
春和景丽 2020-12-03 01:52

When I try to compile this code i get:

52 C:\\Dev-Cpp\\Projektyyy\\strategy\\Tiles.h invalid use of undefined type `struct tile_tree_apple\' 
46 C:\\Dev-Cpp\         


        
8条回答
  •  醉酒成梦
    2020-12-03 02:34

    Use forward declaration when possible.

    Suppose you want to define a new class B that uses objects of class A.

    1. B only uses references or pointers to A. Use forward declaration then you don't need to include . This will in turn speed a little bit the compilation.

      class A ;
      
      class B 
      {
        private:
          A* fPtrA ;
        public:
          void mymethod(const& A) const ;
      } ;
      
    2. B derives from A or B explicitely (or implicitely) uses objects of class A. You then need to include

      #include 
      
      class B : public A 
      {
      };
      
      class C 
      {
        private:
          A fA ;
        public:
          void mymethod(A par) ;   
      }
      

提交回复
热议问题