不可或缺 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 ...
随机推荐
- Struts2中Action取得表单数据的几种方法
Struts2中Action取得表单数据的几种方法 Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...
- javaweb+SSH实现简单的权限管理系统
权限管理,平时里很多地方我们都可以看到,比如聊QQ时群里的群主.管理员以及成员之间的功能是不一样的--大家一定会遇到的一个问题,所以整理 一下自己写权限系统的一些经验给大家,只起参考作用,也望大家笑纳 ...
- 在SSIS中的不同组件间使用局部临时表
Connetion的属性RetainSameConnection是个boolean值,指定是否保持相同的链接,默认值是false,表示每个component都会单独的使用connection,在com ...
- Ubuntu-安装-theano+caffe-超详细教程
一.说明 本文是继<Ubuntu-安装-cuda7.0-单显卡-超详细教程> 之后的续篇.theano和caffe是深度学习库,对运算能力需求很大,最好使用cuda进行加速.所以,请先阅读 ...
- CSS实现水平居中的4种思路
× 目录 [1]text-align [2]margin [3]absolute [4]flex 前面的话 水平居中是经常遇到的问题.看似方法较多,条条大路通罗马.但系统梳理下,其实都围绕着几个思路展 ...
- Javaweb -- ServletContextListener
当启动web应用后端服务时,有时需要预先从数据库或者配置文件等读取信息来配置一些全局变量之类的 这时可以用ServletContextListener,在启动服务时,加载设置基本配置 实现如下: (1 ...
- AngularJS的学习--ng-show/ng-hide/ng-if和ng-switch
在Angular的原生指令中有这几个指令用来控制元素的展示与否,ng-show/ng-hide/ng-if和ng-switch. 在angular性能优化中,我们也常常会用到它. 我们看下他们的区别. ...
- 面试题目: PHP 有哪些优缺点?
当面试官噼里啪啦的问你一大堆问题后,突然问你,PHP有哪些优缺点?你蒙了没? 反正我是蒙了,不管你信不信! 现在,关于PHP优缺点,大致的说几点: 1. 语法简单的,上手很快,而且还有很多很便捷的开 ...
- gulp-rev:项目部署缓存解决方案----gulp系列(六)
引言: 前端工程化部署比较重要考虑的一个问题是缓存 ,可以参考 <变态的静态资源缓存与更新>. 使用gulp-rev解决的就是<变态的静态资源缓存与更新>提出的问题. rev会 ...
- Hover.css:一组超实用的 CSS3 悬停效果和动画
Hover.css 是一套基于 CSS3 的鼠标悬停效果和动画,这些可以非常轻松的被应用到按钮.LOGO 以及图片等元素.所有这些效果都是只需要单一的标签,必要的时候使用 before 和 after ...