当前位置: 首页 > news >正文

C++ references

 C++复杂在于提供了太多的内存模型 

或者说: 提供了两种东西:

1、可以放对象的地方:

  • 堆栈
  • 全局数据区里

2、提供了很多访问对象的方式

  • 变量是对象
  • 指针访问对象
  • 引用来访问对象

3 * 3 = 9 种访问对象的方式

规则

引用一般初始化,初始值必须是变量或者左值引用

  • 要求变量是local  or global是必须初始化
  • 若引用是类成员data,则在initialise list 中初始化

引用也是一个变量的别名,引用即建立了绑定

int x = 3;
int& y = x;
const int& z = x;    // 对比 const int* z = x   不能通过z来改变x的值
z = 10                // invalid
/*
function argument
*/
void f(int& x);

f(y);  

一个引用必须有一个指向的地址

void func(int & x){}
func(i * 3);   // error! 不能传临时的结果

一个函数的结果是reference ,只要是reference就可以做左值

int x;
int & h() { return x ;}

h() = 16 ;

http://www.dtcms.com/a/18953.html

相关文章:

  • XMOS的多项音频技术创新将大模型与边缘AI应用密切联系形成生态化合
  • Map 和 Set
  • 类与对象C++详解(中)-----构造函数与析构函数
  • 大数据学习(46) - Flink按键分区处理函数
  • dl学习笔记(11):VGG,NIN,GooleNet经典架构pytorch实现
  • 跳跃游戏 II - 贪心算法解法
  • nacos2.0.4源码启动
  • win11系统 Docker Desktop提示Docker Engine stopped解决全过程记录
  • PHP 数组与数据结构详解
  • 【NLP 22、语言模型 language model】
  • Kotlin 扩展
  • 排序与查找算法(C语言实现)
  • 【Linux开发工具】调试器-gdb
  • 【动态路由】系统Web URL资源整合系列(后端技术实现)【nodejs实现】
  • 代码随想录算法【Day46】
  • PHP处理大文件上传
  • 搜广推校招面经十六
  • es和kibana安装
  • WEB安全--SQL注入--堆叠注入
  • 53倍性能提升!TiDB 全局索引如何优化分区表查询?
  • 关系数据库标准语言SQL
  • SQL语句语法
  • 【Java】xxl-job
  • print(f“Random number below 100: {random_number}“)的其他写法
  • 【Linux】:网络协议
  • c++--变量内存分配
  • C语言进阶习题【3】5 枚举——找单身狗2
  • Pytest快速入门
  • 【MySQL】第五弹---数据类型全解析:从基础到高级应用
  • Linux 上安装 PostgreSQL