Circular dependencies of declarations

前端 未结 6 1219
眼角桃花
眼角桃花 2021-01-19 05:02

I am trying to implement example of visitor pattern, but I have trouble with circular dependecies of declarations of classes. When I do forward declaration of class Visitor,

6条回答
  •  Happy的楠姐
    2021-01-19 05:46

    class Visitor; 
    
    class England : public Land {
      public:
        void accept(const Visitor *v); // Only declaration
    };
    
    
    // Define Visitor
    class Visitor {
      //...
    };
    
    // Now implementation
    void England::accept(const Visitor *v) {
          v->visit(this);
    }
    

提交回复
热议问题