1.传值参数
输出结果:sum is: 0
运行时实际参数的值将在Add函数执行之前 复制 给形式参数,如果实际参数与形式参数的数据类型不一致,必须进行数据类型转换,函数运行结束时,形式参数所属的数据类型的析构函数会释放该形式参数,形式参数的值不会复制到对应的实际参数中,因此不会改变实际参数的值。
可以理解函数运行时形式参数只是实际参数的一个拷贝。
2.引用参数
输出结果:sum is: 3
传值参数在函数执行之前要调用形式参数的构造函数,函数运行结束时要调用析构函数,因此会增加程序运行的开销。而引用参数则不同,在函数调用时并不是复制实际参数的值,而是直接用实际参数来代替形式参数,因此上面这段程序的sum的值应该是3。另外函数返回时也没有调用析构函数,因此程序运行时开销比传至参数模式小。
3.常量引用参数
输出结果:sum is: 3
常量引用模式指出函数不得修改引用参数,在Add函数中,不能对参数a和b进行修改;由于sum的值改变了,所以不能采用常量引用参数。