【发布时间】:2010-12-17 10:39:50
【问题描述】:
我正在尝试实现访问者模式的示例,但我遇到了类声明的循环依赖问题。当我做访问者类的前向声明时,俄罗斯和英格兰类不知道访问者有方法访问,但是当我将访问者的前向声明扩展为方法接受时,我需要使用英格兰和俄罗斯类,但他们需要知道谁访问者是,因为他们在他们的代码中使用这种类型。我尝试了许多订购代码的变体,但我完全失败了。请帮助我理解,C++ 需要什么来获得这个。谢谢。
#include还有 g++ 输出
c++ -ansi -Wall -Wextra -Wconversion -pedantic -Wno-unused-parameter -o vp vp.cc vp.cc:在成员函数“virtual void England::accept(const Visitor*)”中: vp.cc:40:错误:不完整类型“const struct Visitor”的无效使用 vp.cc:30:错误:“const struct Visitor”的前向声明 vp.cc:在成员函数“virtual void Russia::accept(const Visitor*)”中: vp.cc:47:错误:不完整类型“const struct Visitor”的无效使用 vp.cc:30:错误:“const struct Visitor”的前向声明【问题讨论】:
标签: c++ design-patterns