内联函数

10.PNG

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. inline int Max(int,int);
  4. int main(void)
  5. {
  6. int a,b,c,d,e,f;
  7. scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);//1 2 3 4 5 6
  8. int k=Max(a,b);
  9. //编译器会将这句指令编译成如下
  10. /*if(a>b){
  11. tmp=a
  12. }else{
  13. tmp=b;
  14. }
  15. k=tmp;*/
  16. int m=Max(c,d);
  17. int n=Max(e,f);
  18. cout<<k<<endl;//2
  19. cout<<m<<endl;//4
  20. cout<<n<<endl;//6
  21. return 0;
  22. }
  23. inline int Max(int x,int y)
  24. {
  25. return x>y?x:y;
  26. }

重载函数

11.PNG

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. double Max(double,double);
  4. int Max(int,int);
  5. int main(void)
  6. {
  7. double a,b;
  8. int c,d;
  9. scanf("%lf %lf %d %d",&a,&b,&c,&d);//3.5 2.4 3 6
  10. double k=Max(a,b);//Correct
  11. int m=Max(c,d);//Correct
  12. int n=Max(a,c);//Error:call of overloaded 'Max(double&, int&)' is ambiguous
  13. cout<<k<<endl;//3.5
  14. cout<<m<<endl;//6
  15. return 0;
  16. }
  17. double Max(double m,double n)
  18. {
  19. return m>n?m:n;
  20. }
  21. int Max(int x,int y)
  22. {
  23. return x>y?x:y;
  24. }

函数的缺省参数

12.PNG
4.PNG