C++中对C的扩展学习新增语法——引用

引用

引用的好处:

  1、引用的好处 C++使用结构体,不需要再使用 typedef。

  2、值传递是将实参进行拷贝,赋值给形参,如果对象比较大,每次拷贝效率比较低,并且函数内部无法修改外部变量的值,能力较弱。若使用地址传递无论数据大小,每次只需要传递指针大小的数据,传递效率较高,函数具有修改外部变量的能力(const 指针)。

而引用即可以有值传递简洁的语法,又可以兼顾指针传递的效率。

代码实现:

引用的语法:

基本类型及结构体引用:

对数组引用:

对指针的引用:

注意事项:

1.&在此不是求地址运算,而是起标识作用。

2.类型标识符是指目标变量的类型

3.必须在声明引用变量时进行初始化,初始化之后不能改变。

4.不能有 NULL 引用。必须确保引用是和一块合法的存储单元关联。

原文地址:https://www.cnblogs.com/yyslif/p/11661937.html

时间: 2024-11-11 11:42:09

C++中对C的扩展学习新增语法——引用的相关文章

C++中对C的扩展学习新增语法——内联函数以及函数参数

内联函数以及函数参数 内联函数 使用 inline 关键字必须和函数体放在一起. 内联函数具有内部链接属性. 内联函数会被编译器在编译阶段替换到函数调用的地方. 可以把内联函数定义写到头文件中,多个cpp包含时不会引起重定义. 如果出现连接错误: 使用第三方库,没有将其库代码配置到项目,所以导致编译器找不到实现(变量定义,函数定义) 本身自己只写了声明,根本没有定义实现. 变量本身.函数本身具有内部链接属性,此函数或者变量只能在当前文件访问. 函数参数 函数参数的作用 兼容C语言中不规范的语法

C++中对C的扩展学习新增内容———面向对象(继承)多继承和虚继承

多继承和虚继承 1.多继承的优缺点 (1) 多继承可以复用多个类的代码(函数,变量). (2) 多继承会带来二义性问题. // 1. 多继承优缺点 class Flyable { public: void fly() { cout << "飞翔..." << endl; } void sound() { cout << "嗖嗖..." << endl; } }; class Runnable { public: voi

C++中对C的扩展学习新增内容———面向对象(封装)

面向对象(封装) 1.对封装的理解: 1.封装就是把变量和函数放在一起统一表示某一个食物. class 2.给类内部的成员增加访问控制权限. 3.封装的语法就是class定义一个类. 2.给对象成员增加访问控制权限public和private: 1.类的内部没有权限之分,类内的成员函数可以访问私有成员变量,类的外部才有权限. 2.如果只是提供类内部的函数使用的变量和函数,建议定义为private私有属性. 3.如果我们写的成员函数需要外部调用,我们可以将其定义为共有属性public. 3.str

ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展

关于ExtJS对javascript中的Array的扩展.能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 因为Array中的方法过多.将当中的部分方法设计实例进行学习.实例地址:http://blog.csdn.net/z1137730824/article/details/38797257 (1)Ext.Array中的方法 clean( Array array ) : Array 过滤掉数组里的空值,空值

ExtJS学习-----------Ext.String,ExtJS对javascript中的String的扩展

关于ExtJS对javascript中的String的扩展,能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 以下对当中的部分方法进行介绍: (1)capitalize capitalize( String string ) : String 返回一个字符串.该字符串中第一个字母为大写字母 Parameters string : String 要转换的字符串 Returns String 转换后的字符串 (2

ExtJS学习-----------Ext.Number,ExtJS对javascript中的Number的扩展

关于ExtJS对javascript中的Number的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 下面对其中的部分方法进行介绍: (1)constrain constrain( Number number, Number min, Number max ) : Number 检查给定的数值是否在约束的范围内. If the number is already within the 如果再范围内就返

ExtJS学习-----------Ext.Object,ExtJS对javascript中的Object的扩展

关于ExtJS对javascript中的Object的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 下面对其中的方法进行介绍: (1)chain,把当前传入的对象当成新创建对象的原型. chain( Object object ) 使用给定对象作为原生链返回一个新对象. Parameters object : Object 创建新对象的原生链. 实例: var obj={ name:'张三', ag

ios 中Category类别(扩展类)专题总结

原创地址   http://www.code4blog.com/archives/294 类别 类别是一种为现有的类添加新方法的方式. 利用Objective-C的动态运行时分配机制,可以为现有的类添加新方法,这种为现有的类添加新方法的方式称为类别catagory,他可以为任何类添加新的方法,包括那些没有源代码的类. 类别使得无需创建对象类的子类就能完成同样的工作 一.创建类别 1.声明类别 声明类别与声明类的形式很相似 @interface  NSString(NumberConvenienc

objective-c中Category类别(扩展类)专题总结

objective-c中Category 类别.扩展 专题总结 http://blog.csdn.net/jiajiayouba/article/details/21105873 分类: IOS 2014-03-12 18:19 1293人阅读 评论(0) 收藏 举报 类别扩展 objective-c中Category类别(扩展类)专题总结 objective-c类别的作用? 通过类别的方式,可以将类的实现分散到不同的文件里. haoxue 2011-11-19 14:03 类别 类别是一种为现