#include <iostream> using namespace std; class Base { public: Base(int i){ m_base=i; } virtual void Display(const std::string &strShow = "Base class !") { std::cout <<"Base class !" << std::endl; std::cout <<"strShow:" << strShow<<std::endl; } private: int m_base; }; class Derive: public Base { public: Derive(int i,int j):Base(i){ m_drive=j; } virtual void Display(const std::string &strShow = "Derive class !") { std::cout << "Derive class !"; std::cout <<"strShow:" << strShow<<std::endl; } operator int() const throw () { return m_drive; } protected: int m_drive; }; int main() { Derive derive(1,2); int test=(int)derive;///这里不是强制类型转换,是直接使用()操作符 std::cout <<"test:" <<test<< std::endl; return 0; }