| #pragma warning(disable : 4786) #include using namespace std; class TestUnion { enum StoreType{Long,Const_CharP}; union { const char* ch_; long l_; } data_; StoreType stype_; TestUnion(TestUnion&); TestUnion& operator=(const TestUnion&); public: TestUnion(const char* ch); TestUnion(long l); operator const char*() const {return data_.ch_;} operator long() const {return data_.l_;} }; TestUnion::TestUnion(const char* ch):data_.ch_(ch),stype_(Const_CharP) { } TestUnion::TestUnion(long l):data_.l_(l),stype_(Long) { } int main (void) { TestUnion pszobj("yuankai"); TestUnion lobj(1234); cout< return 0; } |
关注此文的读者还看过: