From 29a275b573e3d2c152585d6869ed58dbeed7b924 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 7 Aug 2024 02:04:34 +0800 Subject: [PATCH] Added TypeCastTest.cpp --- CMakeLists.txt | 3 + datatype/TypeCastTest.cpp | 128 ++++++++++++++++++++++++++++++++++++++ pick/Pick2DTest.cpp | 1 + 3 files changed, 132 insertions(+) create mode 100644 datatype/TypeCastTest.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c4b1c6..eb77559 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,9 @@ endmacro() add_executable(TypeSizeof datatype/TypeSizeof.cpp) CM_EXAMPLE_PROJECT("DataType" TypeSizeof) +add_executable(TypeCastTest datatype/TypeCastTest.cpp) +cm_example_project("DataType" TypeCastTest) + add_executable(HalfFloatTest datatype/HalfFloatTest.cpp) cm_example_project("DataType" HalfFloatTest) diff --git a/datatype/TypeCastTest.cpp b/datatype/TypeCastTest.cpp new file mode 100644 index 0000000..35e3340 --- /dev/null +++ b/datatype/TypeCastTest.cpp @@ -0,0 +1,128 @@ +#include + +static int BaseClassCount=0; + +class BaseClass +{ + int count; + +public: + + BaseClass() + { + count=BaseClassCount++; + std::cout<<"BaseClass "<(&tc); + SecondClassB *b_cast_tc=dynamic_cast(&tc); + + SecondClassA *a_cast_bc=dynamic_cast(bc); + SecondClassB *b_cast_bc=dynamic_cast(bc); + + SpecialClass sc; + BaseClass *sb=≻ + + SecondClassA *a_from_sc=dynamic_cast(&sc); + SecondClassB *b_from_sc=dynamic_cast(&sc); + + SecondClassA *a_from_sb=dynamic_cast(sb); + SecondClassB *b_from_sb=dynamic_cast(sb); + + std::cout<<"tc: "<<&tc< #include +#include #include #include #include