不可或缺 Windows Native (12) - C++: 引用类型
作者:webabcd
介绍
不可或缺 Windows Native 之 C++
- 引用类型
示例
CppReference.h
#pragma once #include <string> using namespace std; namespace NativeDll
{
class CppReference
{
public:
string Demo();
};
}
CppReference.cpp
/*
* 引用类型
*
* 引用也可以称之为“别名”
*
* 注:
* 1、声明引用时,必须同时初始化
* 2、被引用的对象必须已经分配了空间
* 3、被引用的对象不能为地址,即指针变量、数组变量等不能被引用
*/ #include "pch.h"
#include "CppReference.h" using namespace NativeDll; void reference_demo1();
void reference_demo2();
void reference_demo3(); string CppReference::Demo()
{
// 引用的用法
reference_demo1(); // 引用和指针的区别
reference_demo2(); // “引用”也可以作为函数的返回值
reference_demo3(); return "看代码及注释吧";
} // 引用的用法
void reference_demo1()
{
int a1, a2 = ;
// &b - 代表定义一个名为 b 的引用。此处的“&”是类型说明符,表示 b 是一个引用
// 声明了一个引用,则必须同时为其初始化
int &b = a1; // b 是 a1 的引用,即 b 是 a1 的别名 b = a2; // a1 和 b 都等于 10
a1 = ; // a1 和 b 都等于 100
b = ; // a1 和 b 都等于 1000
} // 引用和指针的区别
void reference_demo2()
{
int m = ;
int n = ; int *x = &m;
int *y = &n; int &s = m;
int &t = n; void my_swap(int *i, int *j); // 通过指针,交换两个整型
void my_swap(int &i, int &j); // 通过引用,交换两个整型 my_swap(x, y); // 调用 void my_swap(int *i, int *j); 结果:m=2,n=1
my_swap(s, t); // 调用 void my_swap(int &i, int &j); 结果:m=1,n=2
my_swap(m, n); // 调用 void my_swap(int &i, int &j); 结果:m=2,n=1
} // 通过指针,交换两个整型
void my_swap(int *i, int *j)
{
// 形参是实参的副本,这里会将指针复制一份出来,函数调用结束后立即释放 int temp;
temp = *i;
*i = *j;
*j = temp;
} // 通过引用,交换两个整型
void my_swap(int &i, int &j)
{
// 如果采用“引用”的方式,i 和 j 其实就是对应的那两个实参本身 int temp;
temp = i;
i = j;
j = temp;
} // “引用”也可以作为函数的返回值
int &reference_function();
int reference_i = ;
void reference_demo3()
{
reference_function() = ; // 此时 reference_i 的值为 999
} int &reference_function()
{
return reference_i;
}
OK
[源码下载]
不可或缺 Windows Native (12) - C++: 引用类型的更多相关文章
- 不可或缺 Windows Native 系列文章索引
[源码下载] 不可或缺 Windows Native 系列文章索引 作者:webabcd 1.不可或缺 Windows Native (1) - C 语言: hello c 介绍不可或缺 Window ...
- 不可或缺 Windows Native (1) - C 语言: hello c
[源码下载] 不可或缺 Windows Native (1) - C 语言: hello c 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 在 Windows Sto ...
- 不可或缺 Windows Native (5) - C 语言: 数组
[源码下载] 不可或缺 Windows Native (5) - C 语言: 数组 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 数组 示例cArray.h #ifn ...
- 不可或缺 Windows Native (6) - C 语言: 函数
[源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...
- 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符
[源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...
- 不可或缺 Windows Native (9) - C 语言: 动态分配内存,链表,位域
[源码下载] 不可或缺 Windows Native (9) - C 语言: 动态分配内存,链表,位域 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 动态分配内存 链 ...
- 不可或缺 Windows Native (25) - C++: windows app native, android app native, ios app native
[源码下载] 不可或缺 Windows Native (25) - C++: windows app native, android app native, ios app native 作者:web ...
- 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换
[源码下载] 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 运算符重载 自 ...
- 不可或缺 Windows Native (23) - C++: 虚函数
[源码下载] 不可或缺 Windows Native (23) - C++: 虚函数 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 虚函数 示例1.基类CppHuman ...
随机推荐
- 消息队列-Kafka学习
Kafka是一个分布式的消息队列,学习见Apache Kafka文档,中文翻译见Kafka分享,一个简单的入门例子见kafka代码入门实例.本文只针对自己感兴趣的点记录下. 1.架构 Producer ...
- Android笔记——活动的生命周期
一.活动的重要性 掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的游刃有余.你的应 ...
- linux下配置mysql默认编码utf8
linux下配置mysql默认编码utf8 下面是需要在对应地方加入的配置 [client] default-character-set=utf8 [mysqld] character-set-ser ...
- JavaScript 对象的基本知识
js对象和属性的基本定义 (function(){ $(document).ready(function(){ return "object define"; //创建对象实例 v ...
- 关于sass的介绍和基本语法
引入 什么是sass?sass是css预处理器. 那预处理器又是什么?css本身不是一种编程语言,而预处理器是用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件. 如今主流的预处理器 ...
- Python基础语法
学习一门编程语言,通常是学习该语言的以下几个部分的内容: 基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组.链表.Map.Set等: ...
- Java中的数是用补码表示的检验
一.基本介绍(关于下列五个定义来自http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html#!comments,谢原 ...
- 10034 - Freckles 克鲁斯克尔最小生成树!~
/* 10034 - Freckles 克鲁斯克尔最小生成树!- */ #include<iostream> #include<cstdio> #include<cmat ...
- The Triumph Of Bio-logic
理性技术的局限 机械逻辑 人造机械的构成逻辑,比如说钟表的制作原理.是一种可被人类掌握的,可推演的理论. 生物逻辑 一个有机系统的构成逻辑.比如说草原.细胞.大脑等这些系统的存在所依托的逻辑,我们成为 ...
- Sybase 数据库新增用户,赋权
Sybase数据库, 需求:新增用户user1,赋予对原数据库中表t_jingyu的查询权限 数据库原用户登陆 isql -U用户 -P密码 -S服务名 sp_addlogin 'user1','us ...