c++引用(修改引用的值)
当我们希望修改某个函数的返回值时,通常我们会返回这个值的引用(因为函数返回值其实是返回那个值得一份拷贝而已,所以想要修改必须使用引用):
.h文件
#pragma once
#include <vector>
using namespace std;
class ref1
{
public:
ref1();
~ref1();
std::vector<int *> pVec;
vector<int *>& getVec();
};
.cpp文件
#include "stdafx.h"
#include "ref.h" ref1::ref1()
{
int *p1 = new int();
int *p2 = new int();
int *p3 = new int();
pVec.push_back(p1);
pVec.push_back(p2);
pVec.push_back(p3);
} ref1::~ref1()
{
} std::vector<int *>& ref1::getVec()
{
return pVec;
}
接收引用并修改值:vector<int *>&tmpV = aa->getVec();
#include "ref.h"
using namespace std;
int main()
{
ref1*aa = new ref1;
vector<int *>&tmpV = aa->getVec();
int *p4 = new int();
int * &p5 = tmpV.at();//在容器中访问元素的成员函数(front,back,下标,at)返回的都是引用
p5 = p4;
cout << *(aa->pVec.at());
system("pause");
return ;
}
运行结果截图:

c++引用(修改引用的值)的更多相关文章
- C++11 左值引用和右值引用与引用折叠和完美转发
1.左值与右值 最感性的认识. 当然,左值也是可以在右边的. 左值是可以被修改的,右值不能. 当然取地址也是. 生存周期一般左值会比右值的长,一般右值都计算时产生的无名临时对象,存在时间比较短. 下面 ...
- <五>掌握左值引用和初识右值引用
1:C++的引用,引用和指针的区别? 1:从汇编指令角度上看,引用和指针没有区别,引用也是通过地址指针的方式访问指向的内存 int &b=a ; 是需要将a的内存地址取出并存下来, b=20; ...
- C# 动态修改dll的签名 以及修改引用该dll文件的签名
在读取RedisSessionStateProvider配置 提到用mono ceil 来修改程序集以及它的签名,里面GetPublicKey 和GetPubliKeyToken 方法里面那个字符串的 ...
- C++引用和函数返回值
这是老师上课讲的内容,现在把它写下来,一方面当做复习,另一方面真的想学点东西.废话不多说,先贴上测试的代码: #include <iostream.h> float temp; float ...
- spring 引用Bean的属性值
引用Bean的属性值 从Spring3.0开始,可以通过#{beanName.beanProp}的方式方便地引用另一个bean的属性值1.不需要使用PropertyPlaceholderConfigu ...
- c++函数参数类型-引用、指针、值
c++函数参数类型-引用.指针.值 https://www.cnblogs.com/lidabo/archive/2012/05/30/2525837.html
- JAVA参数没有引用传递,只有值传递
原文章地址:http://www.cnblogs.com/clara/archive/2011/09/17/2179493.html 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性, ...
- [C++11]_[0基础]_[左值引用声明和右值引用声明]
场景: 在 remove_reference 结构体中能看到右值引用的身影 &&, 那么这里的右值引用究竟有什么用呢? 常常也发现int& 和int&& 这两种 ...
- Excel_通过单元格的值来引用以单元格值命名的sheet
1.通过单元格的值来引用以单元格值命名的sheet,在做多个类似sheet的统计结果时效率比较高 当一项测试中有很多个模块,每个模块中有很多条测试用例 将以上测试用例整理在Excel中,每个模块一个s ...
- 详解C++中指针(*)、取地址(&)、解引用(*)与引用(&)的区别 (完整代码)
一.初步了解--指针与取地址 先看程序: #include<cstdio> int main(void) { int num = 7; int *p = # printf( ...
随机推荐
- 报错: unable to register MBean
解决方法: 在SpringBoot项目中配置文件加上 spring.jmx.enabled=false https://stackoverflow.com/questions/27440985/una ...
- android 逆向
用到两个工具 :dex2jar和jd-gui 1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex: 2,解压dex2jar-0.0 ...
- Winform 实现无边框窗体移动功能
#region 窗体移动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImp ...
- 基于vue.js实现远程请求json的select控件
基本思路 前端把需要的参数类型编码传到后台,后台返回相应的参数列表json,前端利用vue渲染select控件 具体实现 前端代码 <select v-model="template. ...
- RTMP与HLS压力测试工具安装与配置
在CentOS 6.5环境中安装依赖软件包,使用git下载最新版本st-load源码包 [root@localhost ~]# yum install git unzip patch gcc gcc- ...
- vue之后台管理系统遇到的几个痛点
杂七杂八的一些日总结 1.vue(最)合理的处理表单提交和初始化表单数据显示的方式 对于表单处理,繁琐的一个地方就是当出现多个下拉选择的表单框的时候,我们需要进行多次将选择的文本去换对应的id值的操作 ...
- JDK8 Java 中遇到null 和为空的情况,使用Optional来解决。
空指针是我们最常见也最讨厌的异常,写过 Java 程序的同学,一般都遇到过 NullPointerException :) 初识null 详细可以参考[jdk 1.6 Java.lang.Null.P ...
- MySQL 之mydumper安装详解
方法一: 安装依赖包: 1 yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake make 下载二 ...
- MySQL操作mysqldump命令详解
--all-databases , -A导出全部数据库. --all-tablespaces , -Y导出全部表空间. --no-tablespaces , -y不导出任何表空间信息. --add-d ...
- BCGcontrolBar(四) ListCtrl 操作输出显示
Ribbon 的效果主要为在可停靠面板上放置各种组件 具体操作为新建一个watchbar 然后在watchbar上加入 ListCtrl组件 效果如下 因为是在可停靠面板上生成的 因此可以随意拖动 具 ...