程序清单: 将int转换为Counter
- #include <iostream>
- using namespace std;
- class Counter
- {
- public:
- Counter();
- Counter(int val); //转换构造函数
- ~Counter() {}
- int GetItsVal() const { return itsVal; }
- private:
- int itsVal;
- };
- Counter::Counter():
- itsVal(0)
- {}
- Counter::Counter(int val):
- itsVal(val)
- {}
- int main()
- {
- int theInt=5;
- Counter theCtr=theInt;
- cout << "theCtr: " <<theCtr.GetItsVal() <<endl;
- return 0;
- }
将Counter转换为unsigned int
- #include <iostream>
- using namespace std;
- class Counter
- {
- public:
- Counter();
- Counter(int val);
- ~Counter() {}
- int GetItsVal() const { return itsVal; }
- operator unsigned int ();
- private:
- int itsVal;
- };
- Counter::Counter():
- itsVal(0)
- {}
- Counter::Counter(int val):
- itsVal(val)
- {}
- Counter::operator unsigned int ()
- {/*转换函数,无返回值*/
- return (unsigned int (itsVal));
- }
- int main()
- {
- Counter ctr(5);
- unsigned int theInt =ctr;
- cout << "theInt: " <<theInt<<endl;
- return 0;
- }