summaryrefslogtreecommitdiff
path: root/c,cc/base_derived_vector.cc
diff options
context:
space:
mode:
Diffstat (limited to 'c,cc/base_derived_vector.cc')
-rw-r--r--c,cc/base_derived_vector.cc35
1 files changed, 35 insertions, 0 deletions
diff --git a/c,cc/base_derived_vector.cc b/c,cc/base_derived_vector.cc
new file mode 100644
index 0000000..e20a43d
--- /dev/null
+++ b/c,cc/base_derived_vector.cc
@@ -0,0 +1,35 @@
+#include <iostream>
+#include <vector>
+
+class Base {
+public:
+ virtual void
+ f()
+ {
+ std::cout << "Base\n";
+ }
+};
+
+class Derived: public Base {
+public:
+ virtual void
+ f()
+ {
+ std::cout << "Derived\n";
+ }
+};
+
+int
+main()
+{
+ std::vector<Base> s;
+ Base a;
+ s.push_back(a);
+ Derived b;
+ s.push_back(b);
+ for (std::vector<Base>::iterator it = s.begin(); it != s.end(); ++it)
+ it->f();
+
+ return 0;
+}
+