• C++第四篇--重载_指针_引用


    C++第四篇--重载_指针_引用

    1. 基础知识

    重载:函数名相同,根据参数不同(类型、数量、顺序不同)调用同名函数

    指针和引用:引用就是别名,引用时必须初始化,引用你定义的变量。

    int a;
    int &b=a; //b即为a的别名
    

    2. 重载

    main.cpp
    #include <iostream>
    
    using namespace std;
    
    
    int add(int a,int b){
        cout<<"add int + int"<<endl;
        return a+b;
    }
    
    int add(int a,int b,int c){
        cout<<"add int + int + int"<<endl;
        return a+b+c;
    }
    
    int add(double a,double b){
        cout<<"add double + double"<<endl;
        return a+b;
    }
    
    int add(int a,double b){
        cout<<"add int + double"<<endl;
        return (double)a+b;
    }
    
    
    int add(double b,int a){
        cout<<"add int + double"<<endl;
        return a+(double)b;
    }
    
    int main(int argc,char **argv){
        add(1,2);
        add(1,2,3);
        add(1.0,2.0);
        add(1.0,2);
        add(1,2.0);
        return 0;
    }
    

    程序运行结果:

    add int + int
    add int + int + int
    add double + double
    add int + double
    add int + double
    

    结论:说明根据函数的参数的不同,可以调用不同的同名函数,但是不可以根据返回值的类型不同调用函数。

    3. 指针_引用

    main.cpp
    #include <iostream>
    
    using namespace std;
    //普通传入参数
    int add_one(int a){
        a = a+1;
        return a;
    }
    
    
    //引入指针
    int add_one(int *a){
        *a = *a +1;
        return *a;
    }
    
    //引入引用
    int add_one_ref(int &b){
        b = b+1;
        return b;
    }
    
    int main(int argc,char **argv){
    
        int a = 99;
        int &c = a;;
        cout<<add_one(a)<<endl;
        cout<<"a="<<a<<endl;
    
        cout<<add_one(&a)<<endl;
        cout<<"a="<<a<<endl;    
    
        cout<<add_one_ref(a)<<endl;
        cout<<"a="<<a<<endl;
    
        c++;
        cout<<"a="<<a<<endl;
        cout<<"c="<<c<<endl;    
    
    
        return 0;
    }
    

    程序运行结果:

    100
    a=99
    100
    a=100
    101
    a=101
    a=102
    c=102
    

    结论:上述结果可以说明,普通传参数只是将99这个数值传入,对99这个数值进行操作,并没有对a所在的内存进行操作,而指针操作便是a所在的内存进行操作,但是为了避免指针使用不恰当引起的巨大影响,C++引入引用,便是一个变量的别名,指向的是同一个内存地址,故对该引用进行操作,这是对该变量操作,十分方便。

  • 相关阅读:
    复习一allure
    本地push 到git hub 二
    项目过程中,测试总感觉自己的时间不够怎么办?
    记一次接口并发,酿成20万损失的惨案
    记录一次管理员组织应用的运行
    记录一次jmeter脚本开发缺少utf-8惹的祸
    记录一次pycharm中,引入其他类可用,下面总是有波浪线,而且Ctrl+b 无法查看类函数的源码
    Fiddler如何过滤无用的链接
    【bat】将当前文件夹及其子文件夹下的所有文件移动到新文件夹中
    python 安装python-docx模块(如何本地安装)
  • 原文地址:https://www.cnblogs.com/lkq1220/p/7227287.html
Copyright © 2020-2023  润新知