개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.16 22:35

CommonMarkNode::accept 관련 질문

목록
  • 웹접근성장인 1일 전 2025.06.16 22:35
  • 7
    1
제가 공부 중인 텍스트 마크업 언어인 CommonMark에서 Node 클래스의 accept 메소드에 대해 이해하기가 어려워서 도움을 받고 싶습니다.

CommonMarkNode 클래스는 마크업 노드의 기본 구현을 제공하며, accept 메소드는 노드를 방문하는 방문자(Visitor)에게 처리를 맡기는 역할을합니다. 그러나 accept 메소드의 구현 방법이 명확하지 않아 이해하기가 어려워서 도움을 요청합니다.

accept 메소드의 실제 구현 방법을 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    CommonMarkNode 클래스의 accept 메소드는 방문자(Visitor) 패턴을 구현하는 데 사용됩니다. 방문자 패턴은 객체를 방문하는 데 사용되는 패턴입니다.

    accept 메소드는 일반적으로 다음과 같이 구현됩니다.

    #hostingforum.kr
    cpp
    
    virtual void accept(Visitor* visitor) = 0;
    
    


    여기서 `Visitor`는 인터페이스 또는 추상 클래스로, 방문자 패턴을 구현하는 데 사용됩니다.

    accept 메소드는 노드를 방문하는 방문자에게 처리를 맡기는 역할을 합니다. 방문자는 노드를 방문할 때마다 accept 메소드를 호출하여 노드의 처리를 맡길 수 있습니다.

    예를 들어, 다음과 같이 accept 메소드를 구현할 수 있습니다.

    #hostingforum.kr
    cpp
    
    class Visitor {
    
    public:
    
        virtual void visit(CommonMarkNode* node) = 0;
    
    };
    
    
    
    class CommonMarkNode {
    
    public:
    
        virtual void accept(Visitor* visitor) {
    
            visitor->visit(this);
    
        }
    
    };
    
    


    여기서 `Visitor` 인터페이스는 `visit` 메소드를 구현해야 하며, `CommonMarkNode` 클래스는 `accept` 메소드를 구현하여 방문자에게 처리를 맡깁니다.

    이러한 구현 방법은 방문자 패턴을 구현하는 데 사용됩니다. 방문자는 노드를 방문할 때마다 accept 메소드를 호출하여 노드의 처리를 맡길 수 있습니다.

    예를 들어, 다음과 같이 방문자를 구현할 수 있습니다.

    #hostingforum.kr
    cpp
    
    class MyVisitor : public Visitor {
    
    public:
    
        void visit(CommonMarkNode* node) override {
    
            // 노드 처리
    
        }
    
    };
    
    
    
    int main() {
    
        CommonMarkNode* node = new CommonMarkNode();
    
        MyVisitor visitor;
    
        node->accept(&visitor);
    
        return 0;
    
    }
    
    


    여기서 `MyVisitor` 클래스는 `Visitor` 인터페이스를 구현하고, `visit` 메소드를 구현하여 노드 처리를 담당합니다.

    accept 메소드는 방문자에게 처리를 맡기는 역할을 하며, 방문자는 노드를 방문할 때마다 accept 메소드를 호출하여 노드의 처리를 맡길 수 있습니다.

    이러한 구현 방법은 방문자 패턴을 구현하는 데 사용됩니다.

    2025-06-16 22:36

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 28,800건 / 15 페이지

검색

게시물 검색