/*#include"iostream"
using namespace std;
void any_function(int & p);//声明函数any_function//p为引用对象的别名
int main()
{
 int a = 1;
 cout << "a is" << a << endl;
 any_function(a); //此时引用对象的地址传过去的,而不是副本//因为在c和c++中‘&’是作为取地址符的,在c++中有复于了它引用的作用
 cout << "a is now" << a << endl;
 return 0;
}
void any_function(int & p)//引用时要在&前加上引用对象的类型,如“int”
{
 cout << "p is" << p << endl;
 p = 2;//所以当p=2是cout << "a is now" << a << endl;输出结果为"a is now 2"//注意:引用变量之前必须将其初始化,像const一样必须在创建时对其初始化
}
*/

/*
#include <iostream>
using namespace std;
float temp; //定义全局变量temp
float fn1(float r); //声明函数fn1
float &fn2(float r); //声明函数fn2
float fn1(float r) //定义函数fn1,它以返回值的方法返回函数值
{
 temp = (float)(r*r*3.14);
 return temp;
}
float &fn2(float r) //定义函数fn2,它以引用方式返回函数值
{
 temp = (float)(r*r*3.14);
 return temp;
}
void main() //主函数
{
 float a = fn1(10.0); //第1种情况,系统生成要返回值的副本(即临时变量)
 float c = fn2(10.0); //第2种情况,系统不生成返回值的副本
 //可以从被调函数中返回一个全局变量的引用
 float &d = fn2(10.0); //第3种情况,系统不生成返回值的副本
 //可以从被调函数中返回一个全局变量的引用
 cout << a << endl;
 cout << c << endl;
 cout<<d<<endl;
}*/

/*
#include <iostream>
using namespace std;
int &put(int n);
int vals[10];
int error = -1;
void main()
{
 put(0) = 10; //以put(0)函数值作为左值,等价于vals[0]=10;
 put(9) = 20; //以put(9)函数值作为左值,等价于vals[9]=20;
 cout << vals[0]<<endl;
 cout << vals[9]<<endl;
}
int &put(int n)
{
 if (n >= 0 && n <= 9) return vals[n];
 else { cout << "subscript error"; return error; }
}*/
//4、引用和多态
//引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用可以指向它的派生类实例。

//class  A;
//class  B:public A{ …… };
//B  b;
//A  &Ref = b; // 用派生类对象初始化基类对象的引用
//Ref 只能用来访问派生类对象中从基类继承下来的成员,是基类引用指向派生类。如果A类中定义有虚函数,并且在B类中重写了这个虚函数,就可以通过Ref产生多态效果。

最新文章

  1. dubbo配置
  2. 【Java EE 学习 67 上】【OA项目练习】【JBPM工作流的使用】
  3. css绝对定位问题
  4. 【转】Java 5种字符串拼接方式性能比较。
  5. arraylist linkedlist性能测试
  6. 根据路径获得文件名以及Aspose.Cells.dll操作excel 以及使用iTextSharp.text.pdf.PdfReader.dll对PDF的操作
  7. c标准库中字符和数字转换的函数
  8. @RestController
  9. PHP E-mail
  10. struts2的工作机制
  11. js 指定位置插入html标签(可编辑div)
  12. Dubbo源码分析系列---服务的发布
  13. easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET
  14. Mysql主从原理
  15. MySQL 数据库 Query 的优化
  16. mac 开发环境安装
  17. #20175120彭宇辰 java第五周学习总结
  18. js 闭包 弊端
  19. 20155220 Exp2 后门原理与实践
  20. Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息

热门文章

  1. win下sass安装失败的一种可能
  2. spring的Scheduled(定时任务)和多线程
  3. Skype无法收发组消息
  4. 转: BAT等研发团队的技术博客
  5. C++STL 常用 函数 用法
  6. python中文注释报错问题
  7. [LintCode] Maximum Depth of Binary Tree 二叉树的最大深度
  8. *HDU3038 并查集
  9. 使用WWW获取本地文件夹的XML配置文件
  10. JDBC编程