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++引入引用,便是一个变量的别名,指向的是同一个内存地址,故对该引用进行操作,这是对该变量操作,十分方便。
阅读全文
0 0
- C++第四篇--重载_指针_引用
- 04_c++重载_指针_引用
- 重载_覆盖_隐藏及指针_引用区别
- C++_函数重载
- <C++>_函数重载
- C++_指针悬挂和赋值操作符的重载
- C++_指针悬挂和赋值操作符的重载
- C++_指针悬挂和赋值操作符的重载
- .第04章 CORE C++_指针(II)_动态内存_引用_类_对象_构造函数_析构函数
- 指针_引用_内存管理new_delete
- C++_引用
- C++_引用类型
- C++_引用
- C#_引用类型
- C++_引用
- C++_引用
- C++_引用
- c语言_指针引用数组元素并打印输出
- Git常用命令
- Linux系统常用的命令
- Java 中>>和>>>的区别
- 针对ARM环境下 tableview tablewidget 滑动块(scroll)设置宽度
- 10个 JavaScript 难点
- C++第四篇--重载_指针_引用
- 邮件发送与接收的原理
- 机器学习教程之10-聚类(Clustering)-K均值聚类(K-means)的sklearn实现
- find删除指定时间之前的文件
- Anroid开发艺术探索(View事件分发)
- ruby 枚举,Enumerable
- mysql-5.7.17-winx64.zip 压缩版的安装与配置(掌握防坑术)
- spark 操作hbase及mysql
- 常用链接备注