File tree 6 files changed +55
-0
lines changed
6 files changed +55
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+
3
+ using namespace std ;
4
+
5
+ class Subject {
6
+ public:
7
+ virtual void Request () = 0;
8
+ virtual ~Subject () { }
9
+ };
Original file line number Diff line number Diff line change
1
+ #include " subject.hpp"
2
+
3
+ int main ()
4
+ {
5
+ Subject *sub = new ConcreteSubject ();
6
+ Proxy *p = new Proxy (sub);
7
+ p->Reuqest ();
8
+
9
+ delete sub;
10
+ delete p;
11
+
12
+ return 0 ;
13
+ }
Original file line number Diff line number Diff line change
1
+ #include " proxy.hpp"
2
+
3
+ Proxy::Proxy (Subject* subject)
4
+ {
5
+ _sub = subject;
6
+ }
7
+ void Proxy::Reuqest ()
8
+ {
9
+ _sub->Request ();
10
+ }
Original file line number Diff line number Diff line change
1
+ #include " interface.hpp"
2
+ class Proxy
3
+ {
4
+ public:
5
+ Proxy (Subject* subject);
6
+ void Reuqest ();
7
+
8
+ private:
9
+ Subject *_sub;
10
+ };
Original file line number Diff line number Diff line change
1
+ #include " subject.hpp"
2
+
3
+ void ConcreteSubject::Request ()
4
+ {
5
+ cout << " ConcreteSubject::Request..." << endl;
6
+ }
Original file line number Diff line number Diff line change
1
+ #include " proxy.hpp"
2
+
3
+ class ConcreteSubject :public Subject
4
+ {
5
+ public:
6
+ virtual void Request ();
7
+ };
You can’t perform that action at this time.
0 commit comments