这篇文章主要讲解了“C++引用怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++引用怎么实现”吧!
#include <iostream>
using namespace std;
int& get()
{
static int a = 10;
a++;
cout << "a is :" << a << endl;
return a;
}
int* get1()
{
static int a = 10;
a++;
cout << "get1 a:" << a << endl;
return &a;
}
int main()
{
get() = 20;
int& c = get(); // 特别注意此处的接受者必须是一个引用, 否则后边的赋值操作根本没有修改函数内部的变量.
/*
如果用一个引用来接受函数返回值, 那么后边函数再被调用的时候,
这个接受者也是联动变化的.
从汇编上看不出来区别,
*/
c = 200;
get();
int* d = get1();
cout << *d << endl;
*d = 20;
get1();
/*
通过这个测试会发现, 和上边的测试效果和接近,
1 在函数外可以直接修改到函数内的变量.
唯一的区别就是上边那个直接使用get()做左值, 而后边这个需要一个指针来接受,
从现象上来讲, 引用做左值的语法要简单于使用指针的操作.
---------------------------------------------------------
get() = 20; | int* d = get1(); | int& c = get();
| *d = 20; | c = 200;
| | 特别注意那个接受者必须是一个应用,
如上所示, 这3中的结果是等效的,
*/
return 0;
}
感谢各位的阅读,以上就是“C++引用怎么实现”的内容了,经过本文的学习后,相信大家对C++引用怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/1579560/blog/4561144