summaryrefslogtreecommitdiff
path: root/ccc/cast.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ccc/cast.cc')
-rw-r--r--ccc/cast.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/ccc/cast.cc b/ccc/cast.cc
new file mode 100644
index 0000000..2e84a64
--- /dev/null
+++ b/ccc/cast.cc
@@ -0,0 +1,27 @@
+#include <iostream>
+
+using namespace std;
+
+
+struct A {
+ virtual void p() { cout << "A" << endl; }
+ void q() { cout << "q" << endl; }
+};
+
+struct Ba : public A {
+ void p() { cout << "Ba" << endl; }
+};
+
+struct Bb : public A {
+ void p() { cout << "Bb" << endl; }
+};
+
+int main(void)
+{
+ A* x = new A;
+ x = dynamic_cast<Ba*>(new Ba);
+ cout << "-" << endl;
+ x->q();
+ x->p();
+}
+