zoukankan      html  css  js  c++  java
  • 【C/C++】函数的默认参数/函数的占位参数/函数重载/注意事项

    1. 函数的默认参数
      返回值类型 函数名(参数=默认值){}
    #include <iostream>
    using namespace std;
    
    int func(int a = 10, int b = 10)
    {
       return a + b;
    }
    
    int main()
    {
       int a = func(20,30);
       cout << a << endl;
       system("pause");
    }
    

    没有用默认值,有的话用输入值。

    注意:
    1. 如果某个位置参数有默认值,那么从这个位置往后,从左往右,都必须要有默认值
    2. 如果函数声明有默认值,函数实现的时候就不能有默认参数。
    
    1. 函数的占位参数
    #include <iostream>
    using namespace std;
    
    //占位参数
    //返回值类型 函数名(数据类型){}  <-没有变量名
    
    //占位参数可以有默认参数
    void func(int a, int = 10)
    {
       cout << "This is func" << endl;
    }
    
    int main()
    {
       func(10);
       system("pause");
    }
    
    1. 函数重载
      函数重载满足条件:
      ·同一个作用域下
      ·函数名称相同
      ·函数【参数】的【类型不同】 或者 【个数不同】 或者 【顺序不同】
    #include <iostream>
    using namespace std;
    
    //函数重载
    //可以让函数名相同,提高复用性
    
    //函数重载的满足条件
    //1.同一个作用域下
    //2.函数名称相同
    //3.函数【参数】【类型】不同,或者【个数】不同,或者【顺序】不同
    void func()
    {
       cout << "This is func" << endl;
    }
    
    void func(int a)
    {
       cout << "This is func22" << endl;
    }
    
    void func(double b)
    {
       cout << "This is func33" << endl;
    }
    
    int main()
    {
       func();
       func(10);
       func(2.0);
       system("pause");
    }
    
    1. 函数重载的注意事项
    #include <iostream>
    using namespace std;
    
    //函数重载的注意事项
    //1、引用作为重载的条件
    void fun(int& a) //int& a = 10;
    {
       cout << "aaa" << endl;
    }
    
    void fun(const int& a) //const int& a = 10;
    {
       cout << "aaa22" << endl;
    }
    
    //2、 函数重载碰到默认参数
    void func2(int a, int b = 10;)
    {
       cout << "bbb" << endl;
    }
    
    void func2(int a)
    {
       cout << "bbb" << endl;
    }
    
    int main()
    {
       // int a = 10;
       // fun(a);
       fun(10);
       //func2(10); //函数重载碰到默认参数,可以被调入两种,有二义性,编译错误
       system("pause");
    }
    
  • 相关阅读:
    SQLite剖析之功能特性
    SQLite剖析之内核研究
    SQLite剖析之体系结构
    SQLite安装、编译与应用
    实验四 数据库查询--2
    Linux监控一之Nagios的安装与配置
    keepalived原理(主从配置+haproxy)及配置文件详解
    负载均衡之Haproxy配置详解(及httpd配置)
    使用HeartBeat实现高可用HA的配置过程详解
    在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
  • 原文地址:https://www.cnblogs.com/kinologic/p/14041448.html
Copyright © 2011-2022 走看看