2011年计算机二级C++实例编程辅导8_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2011年11月10日
17 int add(int a, int b) {

  18 return a + b;

  19 }

  20

  21 int main() {

  22 D d1 = 1.1;

  23 D d2 = 2.2;

  24 std::cout << add(d1, d2) << std::endl;

  25

  26 return 0;

  27 }

  28

  29

  在24行执行add(d1,d2)函数时“(int)D”重载函数将被调用,程序运行的输出为:

  (int)d called!

  (int)d called!

  3

  类型转换操作符 vs 类型转换构造函数(conversion constructor)

  有时候使用conversion constructor就能实现类型转换,这种方式效率更高而且也更直观,下面举例说明:

  1 #include

  2

  3 class A

  4 {

  5 public:

  6 A(int num = 0) : dat(num) {}

  7

  8 /* 重载"(int)a" */

  9 operator int() { return dat; }

  10

  11 private:

  12 int dat;

  13 };

  14

  15

  16 class X

  17 {

  18 public:

  19 X(int num = 0) : dat(num) {}


相关文章