summaryrefslogtreecommitdiff
path: root/c,cc/delegate_iterator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'c,cc/delegate_iterator.cc')
-rw-r--r--c,cc/delegate_iterator.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/c,cc/delegate_iterator.cc b/c,cc/delegate_iterator.cc
new file mode 100644
index 0000000..c4e272e
--- /dev/null
+++ b/c,cc/delegate_iterator.cc
@@ -0,0 +1,32 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+class A {
+ private:
+ typedef vector<int> Data;
+ Data data_;
+ public:
+ typedef Data::iterator iterator;
+ typedef const Data::iterator const_iterator;
+ iterator begin() { return data_.begin(); }
+ iterator end() { return data_.end(); }
+
+ void add(int i) {
+ data_.push_back(i);
+ }
+};
+
+int
+main(void)
+{
+ A a;
+ a.add(23);
+ for (A::iterator it = a.begin(); it != a.end(); it++) {
+ cout << *it << endl;
+ }
+
+ return 0;
+}
+