zoukankan      html  css  js  c++  java
  • 第5章 用函数封装程序功能

    第5章 用函数封装程序功能


    5.1 函数就是一个大"箱子"
    5.1.1 函数的声明和定义

    //p112 很多OJ网站上的第一题
    #include <iostream>
    using namespace std;
    int main()
    {
      int a,b;
      cin>>a>>b;
      cout<<a+b<<endl;
      return 0;
    }
    //写成函数形式见下面:
    #include <iostream>
    using namespace std;
    int add(int a,int b); //函数声明之后,具体函数定义可以在后面
    int main()
    {
      int a,b;
      cin>>a>>b;
      cout<<add(a,b)<<endl; //调用函数之后,马上输出
      return 0;
    }
    int add(int a,int b)
    {
      return(a+b);
    }

    5.1.2 函数调用机制

    //p116 函数的嵌套调用
    #include <iostream>
    using namespace std;
    int sqr(int n)
    {
      return(n*n);
    }
    int sqrsum(int a,int b)
    {
      return(sqr(a)+sqr(b));
    }
    int main()
    {
      int a,b;
      cin>>a>>b;
      cout<<sqrsum(a,b)<<endl; //a^2+b^2
      return 0;
    }

    5.1.3 函数的声明与函数调用
    5.1.4 函数参数的传递

    //p119
    #include <iostream>
    using namespace std;
    int add(int &i,int &j) //C++中的传址!
    {
      int a,b;
      a=i; b=j;
      i=i*2; j=j+10; //改变了i,j
      return(a+b);
    }
    
    int main()
    {
      int i,j;
      cin>>i>>j;
      cout<<"i+j="<<add(i,j)<<endl;
      cout<<"i="<<i<<"  "<<"j="<<j<<endl;
      return 0;
    }

    5.1.5 函数的返回值

    //p121
    #include <iostream>
    using namespace std;
    int sum(int *a,int n) //可以这样以数组为参数
    {
      int i,s=0;
      for(i=0;i<n;++i)
        s += a[i];
      return s;
    }
    
    int main()
    {
      int i,a[10];
      for(i=0;i<10;++i)
      {
        a[i]=rand()%20;
        cout<<a[i]<<" ";
      }
      cout<<endl;
      cout<<sum(a,10)<<endl;
      return 0;
    }

    比赛与做工程不同,当传递参数不确定时,可以以全局变量的方式进入。

    5.2 内联函数
    5.2.1 用体积换速度的内联函数

    //p124
    #include <iostream>
    using namespace std;
    
    //加上inline,就成为了内联函数
    inline bool iseven(int i) 
    {
      return( 0==i%2 );
    }
    
    int main()
    {
      int i,sum=0;
      for(i=0;i<=100;++i)
        if(iseven(i)) ++sum;
      cout<<sum<<endl;
      return 0;
    }

    5.2.2 内联函数的使用规则
    5.3 重载函数
    5.3.1 重载函数的声明

    //p126 根据参数类型不同,调用同名不同函数
    #include <iostream>
    using namespace std;
    
    int add(int a,int b)
    {
      return a+b;
    }
    double add(double a,double b)
    {
      return a+b;
    }
    
    int main()
    {
      cout<<add(1,2)<<endl;
      //cout<<add(1,2.2)<<endl; //编译会通不过
      cout<<add(1.2,2.3)<<endl;
      return 0;
    }

    5.3.2 重载函数的解析
    5.4 函数设计的基本规则
    5.4.1 函数声明的设计规则
    5.4.2 函数体的设计规则

    TOP


     

  • 相关阅读:
    Java——异步调用
    GTK3-demo 代码调用
    ef core code first 生成的数据库表去复数的方法
    nuxt全局挂载导航路由守卫
    vue导入,导出,列表展示excel数据
    JS之blob对象下载文件,解决word可能打开是乱码,xlsx文件打不开,图片显示格式不支持等问题
    程序猿的十一条浮躁表现
    RSA加密解密及加签验签
    冒泡排序
    Failed to parse source for import analysis because the content contains invalid JS syntax
  • 原文地址:https://www.cnblogs.com/xin-le/p/4077687.html
Copyright © 2011-2022 走看看