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

来源:互联网 发布:网络博客怎么开设平台 编辑:程序博客网 时间:2024/06/05 12:03

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 + intadd int + int + intadd double + doubleadd int + doubleadd 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;}

程序运行结果:

100a=99100a=100101a=101a=102c=102

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

原创粉丝点击