类型识别
C++中如何得到动态类型?
#include <iostream> #include <string> using namespace std; class Base { public: virtual string type() { return "Base"; } }; class Derived : public Base { public: string type() { return "Derived"; } void printf() { cout << "I'm a Derived." << endl; } }; class Child : public Base { public: string type() { return "Child"; } }; void test(Base* b) { /* 危险的转换方式 */ // Derived* d = static_cast<Derived*>(b); if( b->type() == "Derived" ) { Derived* d = static_cast<Derived*>(b); d->printf(); } // cout << dynamic_cast<Derived*>(b) << endl; } int main(int argc, char *argv[]) { Base b; Derived d; Child c; test(&b); test(&d); test(&c); return 0; }
#include <iostream> #include <string> #include <typeinfo> using namespace std; class Base { public: virtual ~Base() { } }; class Derived : public Base { public: void printf() { cout << "I'm a Derived." << endl; } }; void test(Base* b) { const type_info& tb = typeid(*b); cout << tb.name() << endl; } int main(int argc, char *argv[]) { int i = 0; const type_info& tiv = typeid(i); const type_info& tii = typeid(int); cout << (tiv == tii) << endl; Base b; Derived d; test(&b); test(&d); return 0; }
POJ1061:青蛙的约会——题解
接口测试结束后的小结
接口测试结束后的小结
如何进行需求测试/需求评审
如何进行需求测试/需求评审
测试人员掌握代码的重要性
测试人员掌握代码的重要性
测试人员掌握代码的重要性
软件自动化测试开发-开班啦