如何在访问者模式中传递附加参数而不修改元素

时间:2017-05-30 20:48:10

标签: c++ visitor

有一个代码:

struct Element;
struct Handler;

//  need to pass Handler at the same time
struct Visitor
{
    void visit(Handler& h, Element& e) {}
};

struct Element
{
    virtual void accept(/*Handler& h,*/ Visitor& v) {
        v.visit(/* h, */ *this);
    }
};

struct Handler
{
    void visitElement(Visitor& v) { e.accept(/* *this, */ v); }

    Element e;
};

是否可以以这样的方式访问Element:Element对Handler类一无所知?

0 个答案:

没有答案