Skip to content

Commit 69e5883

Browse files
committed
add Visitor pattern
1 parent 4cd1459 commit 69e5883

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

visitor/Visitor.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Visitor {
2323
public:
2424
virtual void visitElementA(ConcreteElementA *element) = 0;
2525
virtual void visitElementB(ConcreteElementB *element) = 0;
26+
// ...
2627
};
2728

2829
/*
@@ -40,6 +41,7 @@ class ConcreteVisitor1 : public Visitor {
4041
void visitElementB(ConcreteElementB *) {
4142
std::cout << "Concrete Visitor 1: Element B visited." << std::endl;
4243
}
44+
// ...
4345
};
4446

4547
class ConcreteVisitor2 : public Visitor {
@@ -51,6 +53,7 @@ class ConcreteVisitor2 : public Visitor {
5153
void visitElementB(ConcreteElementB *) {
5254
std::cout << "Concrete Visitor 2: Element B visited." << std::endl;
5355
}
56+
// ...
5457
};
5558

5659
/*
@@ -60,6 +63,7 @@ class ConcreteVisitor2 : public Visitor {
6063
class Element {
6164
public:
6265
virtual void accept(Visitor &visitor) = 0;
66+
// ...
6367
};
6468

6569
/*
@@ -71,13 +75,15 @@ class ConcreteElementA : public Element {
7175
void accept(Visitor &visitor) {
7276
visitor.visitElementA(this);
7377
}
78+
// ...
7479
};
7580

7681
class ConcreteElementB : public Element {
7782
public:
7883
void accept(Visitor &visitor) {
7984
visitor.visitElementB(this);
8085
}
86+
// ...
8187
};
8288

8389

0 commit comments

Comments
 (0)