C++ 类型转换运算符

  1. #include<iostream>
  2. usingnamespace std;
  3. classSmallInt
  4. {
  5. public:
  6. /**
  7. * implicit constructor
  8. * 实现int类型转换为SamllInt类型
  9. */
  10. SmallInt(constint val): value(val)
  11. {
  12. cout <<"SmallInt(const int val)"<< endl;
  13. }
  14. /**
  15. * class-type conversion
  16. * 无显式返回类型
  17. * 无形参
  18. * 必须定义成类的成员函数
  19. * 一般被定义成const类型
  20. */
  21. operatorint()const/* SmallInt类型在需要的时候会转化为int类型 */
  22. {
  23. cout <<"operator int()const"<< endl;
  24. return value;
  25. }
  26. int getValue()const
  27. {
  28. return value;
  29. }
  30. private:
  31. int value;
  32. };
  33. void testTypeConversion()
  34. {
  35. SmallInt smallInt =1;/* SmallInt smallInt = SmallInt(1) */
  36. cout << smallInt.getValue()<< endl;
  37. cout << smallInt +2<< endl;
  38. }
  39. void testTypeConversion2nd()
  40. {
  41. SmallInt smallInt =3.14;/* 3.14转化为int型为3 */
  42. cout << smallInt.getValue()<< endl;
  43. cout << smallInt +3.14<< endl;/* SmallInt类型先转化为int,再转化为double*/
  44. }
  45. int main()
  46. {
  47. testTypeConversion();
  48. testTypeConversion2nd();
  49. return0;
  50. }
​运行结果如下图所示:

 





posted @ 2015-07-16 19:04  指上弹兵赵小括  阅读(228)  评论(0编辑  收藏  举报