当前位置: 首页 > news >正文

改变C++中私有变量成员的值

1、没有引用的情况:

#include <iostream>
#include <queue>
using namespace std;
class Person
{
public:queue<int>que;
public:queue<int> getQueue(){return que;}void push(int a){que.push(a);}void pop(){que.pop();}
};int main() {Person p;for (size_t i = 0; i < 10; i++){p.push(i);}std::cout<<"弹出前元素个数:"<<p.getQueue().size()<<std::endl;p.getQueue().pop();p.getQueue().pop();p.getQueue().pop();std::cout<<"弹出后元素个数:"<<p.getQueue().size()<<std::endl;return 0;
}

实际上p.getQueue()返回的是一个副本,并不是返回成员变量

输出如下:

 

2、采用引用:

#include <iostream>
#include <queue>
using namespace std;
class Person
{
public:queue<int>que;
public:queue<int>& getQueue(){return que;}void push(int a){que.push(a);}void pop(){que.pop();}
};int main() {Person p;for (size_t i = 0; i < 10; i++){p.push(i);}std::cout<<"弹出前元素个数:"<<p.getQueue().size()<<std::endl;p.getQueue().pop();p.getQueue().pop();p.getQueue().pop();std::cout<<"弹出后元素个数:"<<p.getQueue().size()<<std::endl;return 0;
}

输出如下:

 

http://www.lryc.cn/news/153030.html

相关文章:

  • 线程唯一的单例
  • 明厨亮灶监控实施方案 opencv
  • 14 mysql bit/json/enum/set 的数据存储
  • 04_19linux自己撸内存池实战,仿造slab分配器
  • 【HDFS】XXXRpcServer和ClientNamenodeProtocolServerSideTranslatorPB小记
  • 二分,Dijkstra,340. 通信线路
  • Stable Diffusion---Ai绘画-下载-入门-进阶(笔记整理)
  • Java 乘等赋值运算
  • 【性能优化】聊聊性能优化那些事
  • k8s 查看加入主节点命令 k8s重新查看加入节点命令 k8s输入删除,重新查看加入命令 kuberadm查看加入节点命令
  • Scalene:Python CPU+GPU+内存分析器,具有人工智能驱动的优化建议
  • C语言练习8(巩固提升)
  • Java匿名内部类
  • Shiro和SpringSecurity的区别
  • 【STM32】学习笔记(OLED)
  • 概念解析 | 认知雷达:有大脑的雷达
  • B. Long Long
  • CTFhub-文件上传-.htaccess
  • Python中的绝对和相对导入
  • C语言关于与运算符
  • 计算机网络(速率、宽带、吞吐量、时延、发送时延)
  • kubectl入门
  • Android JNI系列详解之ndk-build工具的使用
  • 【业务功能篇90】微服务-springcloud-检索服务-ElasticSearch实战运用-DSL语句
  • QTday4
  • 设计模式之命令模式(Command)的C++实现
  • 取证工具prodiscover的基本操作
  • flutter plugins插件【二】【FlutterAssetsGenerator】
  • 看懂UML类图
  • keras深度学习框架通过简单神经网络实现手写数字识别