C++程序设计清华大学版第3章函数摘要.pptVIP

  • 26
  • 0
  • 约1.53万字
  • 约 68页
  • 2016-12-02 发布于湖北
  • 举报

C++程序设计清华大学版第3章函数摘要.ppt

默认参数值的说明次序 有默认参数的形参必须在形参列表的最后,也就是说默认参数值的右面不能有无默认值的参数。因为调用时实参与形参的结合是从左向右的顺序。 例: int add(int x, int y = 5, int z = 6);//正确 int add(int x = 1, int y = 5, int z);//错误 int add(int x = 1, int y, int z = 6);//错误 * 3.3 带默认参数值的函数 默认参数值与函数的调用位置 如果一个函数有原型声明,且原型声明在定义之前,则默认参数值必须在函数原型声明中给出;而如果只有函数的定义,或函数定义在前,则默认参数值需在函数定义中给出。 例: * 3.3 带默认参数值的函数 int add(int x = 5,int y = 6) { //只有定义,没有原型声明 return x + y; } int main() { add(); } int add(int x = 5,int y = 6); //原型声明在前 int main() { add(); } int add(int x,int y) { //此处不能再指定默认值 return x + y; } 例3-15计算长方体的体积 子函数getVolume是计算体积的函数,有三个形参:length(长)、width(宽)、height(高),其中width和height带有默认值。 主函数中以不同形式调用getVolume函数,分析程序的运行结果。 * 3.3 带默认参数值的函数 //3_15.cpp #include iostream #include iomanip using namespace std; ? int getVolume(int length, int width = 2, int height = 3); ? int main() { const int X = 10, Y = 12, Z = 15; cout Some box data is ; cout getVolume(X, Y, Z) endl; cout Some box data is ; cout getVolume(X, Y) endl; cout Some box data is ; cout getVolume(X) endl; return 0; } ? int getVolume(int length, int width/* = 2 */, int height/* = 3 */) { cout setw(5) length setw(5) width setw(5) height \t; return length * width * height; } * 3.3 带默认参数值的函数 例3-15(续) 3.4 函数重载 C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。 例: * 形参类型不同 int add(int x, int y); float add(float x, float y); 形参个数不同 int add(int x, int y); int add(int x, int y, int z); 注意事项 * 3.4 函数重载 不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好: int add(int x,int y); int add(int a,int b); 编译器不以形参名来区分 int add(int x,int y); void add(int x,int y); 编译器不以返回值来区分 int add(int x, int y) { return x + y; } float add(float x,float y) { return x - y; } 重载函数的形参必须不同:个数不同或类型不同。 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。 例3-16重载函数应用举例 编写两个名为sumOfSquare的重载函数,分别求两整数的平方和及两实数的平方和。 * 3.4 函数重载 #include iostream using namespace std; int sumOfSquare(int a, int b) { return a * a + b * b; } double sumOfSquare(double a, double b) { return a * a + b * b; } int main() { int m, n;

文档评论(0)

1亿VIP精品文档

相关文档