当前位置: 首页 > 编程笔记 >

C++ 定义参考

上官鸿晖
2023-03-14
本文向大家介绍C++ 定义参考,包括了C++ 定义参考的使用技巧和注意事项,需要的朋友参考一下

示例

引用的行为类似,但不完全像const指针。通过&在类型名称后加上“&”号来定义引用。

int i = 10;
int &refi = i;

此处refi是的参考i。
引用抽象了指针的语义,就像对基础对象的别名一样:

refi = 20; // 我= 20;

您还可以在一个定义中定义多个引用:

int i = 10, j = 20;
int &refi = i, &refj = j;

// 常见陷阱:
// int& refi = i, k = j;
// refi will be of type int&.
// though, k will be of type int, not int&!

引用必须在定义时正确初始化,此后不能修改。以下代码段导致编译错误:

int &i; // 错误:引用变量'i'的声明需要初始化

您也不能直接将引用绑定到nullptr,而不像指针:

int *const ptri = nullptr;
int &refi = nullptr; // 错误:对“ int”类型的非常量左值引用无法绑定到“ nullptr_t”类型的临时对象
           

 类似资料:
  • C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。 对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。 带参宏定义的一般形式为: #define 宏名(形参列表) 字符串 在字符串中可以含有各个形参。 带参宏调用的一般形式为: 宏名(实参列表); 例如: 在宏展开时,用实参 5 去代替形参 y,经预处理程序展开后的语句

  • 一份简单的元素定义 Editor.UI.registerElement('foobar-label', { template: ` <div class="text">Foobar</div> `, style: ` .text { color: black; padding: 2px 5px; border-radius: 3px

  • 一份简单的面板定义 Editor.Panel.extend({ style: ` :host { margin: 5px; } h2 { color: #f90; } `, template: ` <h2>Hello World!</h2> `, ready () { Editor.log('Hello World!'); }, });

  • 例如,我在语法中定义了几个lexer规则: 我需要以某种方式标记关键字(“int”、“float”和其他),当我使用TokenStream获取令牌时,我可以通过一些自定义符号对其进行过滤。 有可能吗? 现在我只看到一种方法——将必要的词汇组合成某种规则。 使现代化 我尝试应用下面第一个答案的第一个选项,但遇到了下一个问题:我得到一个错误:“TOKENNAME不是可识别的令牌名称” 因为这是一个问题

  • #define 叫做 宏定义命令,它也是C语言预处理命令的一种。所谓 宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。 我们先通过一个例子来看一下 #define 的用法: 运行结果: 120 注意第 6 行代码 , 被 代替了。 就是宏定义, 为宏名, 是宏的内容(宏所表示的字符串)。在预处理阶段,对程序中所有出现的“宏名”,预处理器都会

  • 本文向大家介绍C#自定义属性,包括了C#自定义属性的使用技巧和注意事项,需要的朋友参考一下 示例 查找具有自定义属性的属性-MyAttribute 查找给定属性上的所有自定义属性 枚举具有自定义属性的所有类-MyAttribute 在运行时读取自定义属性的值 用法