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

这篇具有很好参考价值的文章主要介绍了改变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()返回的是一个副本,并不是返回成员变量

输出如下:

改变C++中私有变量成员的值,c++,算法,开发语言

 文章来源地址https://www.toymoban.com/news/detail-657126.html

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;
}

输出如下:

改变C++中私有变量成员的值,c++,算法,开发语言

 

到了这里,关于改变C++中私有变量成员的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go语言通过反射获取各种类型变量的值

    反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 Golang 反射包中有两对非常重要的函数和类型,两个函数分别是: reflect.TypeOf 能获取类型信息 reflect.Type; reflect.ValueOf 能获取

    2024年02月15日
    浏览(40)
  • c++静态变量成员函数和全局函数的区别

    静态成员函数和全局函数在某些方面是相似的,但它们有一些关键的区别。 静态成员函数是与类相关联的函数,但它们不依赖于特定的类实例 。这意味着它们可以 在没有类实例的情况下被调用 ,并且没有隐含的this指针。静态成员函数可以通过类名直接调用,例如: 静态成

    2024年02月08日
    浏览(48)
  • 【C++】类和对象 - 封装 - 属性和行为,访问权限,class 和 struct区别,成员属性私有化

    No. Contents 1 【C++】基础知识 - HelloWorld,注释,变量,常量,,标识符 2 【C++】数据类型 - 整型,sizeof,实型,字符型,转义字符,字符串类型,布尔类型,数据的输入 3 【C++】运算符 - 算术运算符,赋值运算符,比较运算符,逻辑运算符 4 【C++】程序流程结构 - 循序结

    2024年02月07日
    浏览(35)
  • c++中static静态成员变量和静态成员函数、explcit和隐式类型转换、友元函数()详解

    声明为 static 的类成员 称为 类的静态成员 ,用 static 修饰的 成员变量 ,称之为 静态成员变量 ;用 static 修饰 的 成员函数 ,称之为 静态成员函数 。 静态成员变量一定要在类外进行初始化   静态成员 为 所有类对象所共享 ,不属于某个具体的对象,存放在静态区   静态成

    2024年02月04日
    浏览(38)
  • [开发语言][c++]:Static关键字和全局变量

    写在前面: 如果您只是想回顾或了解一下static和全局变量的异同点,那么下面的总结将满足您的需求。 如果您是一位初学者或对二者的使用模棱两可,建议您读完该篇文章,相信这一篇将解答完您对于static以及全局变量的所有疑惑。 如有问题或建议欢迎评论 or 私信

    2024年01月20日
    浏览(44)
  • C++类和对象-C++对象模型和this指针->成员变量和成员函数分开存储、this指针概念、空指针访问成员函数、const修饰成员函数

    #includeiostream using namespace std; //成员变量 和 成员函数 分开储存的 class Person { public:     Person() {         mA = 0;     }     //非静态成员变量占对象空间     int mA;     //静态成员变量不占对象空间     static int mB;     //函数也不占对象空间,所有函数共享一个函数实例

    2024年02月20日
    浏览(35)
  • 17. C++ static、const 和 static const 类型成员变量声明以及初始化

    1. C++ static、const 和 static const 类型成员变量声明以及初始化 const 定义的常量在超出其作用域之后其空间会被释放; static 定义的静态常量在函数执行后不会释放其存储空间; 1.2 static static 表示的是静态的 类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对

    2024年01月18日
    浏览(49)
  • C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享

    概述: 在C++中,使用`extern`可实现在源文件之间共享变量与类成员函数。通过声明变量或类在头文件中,再在一个源文件中定义,其他源文件通过`extern`引用,促使模块化、可维护的代码组织。 在C++中, extern 可用于在源文件之间共享变量。它告诉编译器某个变

    2024年03月24日
    浏览(48)
  • C语言进阶教程(const定义的变量真的不能被改变吗?)

    本篇文章将为大家讲解const定义的变量到底能不能被改变。 很多同学会误认为const定义的变量就是常量,那么常量是不可被修改的,所以说const定义的变量也是不可被修改的,这是一个错误的观点,其实const定义的变量属性是一个只读的变量属性,而不是常量。 const定义的变量

    2024年02月10日
    浏览(26)
  • JavaScript--改变 HTML 的值

    要改变 HTML 元素的值,可以使用以下方法: 1.使用元素节点的 innerText 属性来改变元素的文本内容。 例如:element.innerText = \\\'新的文本内容\\\'; 2.使用元素节点的 innerHTML 属性来改变元素的 HTML 内容。 例如:element.innerHTML = \\\'新的HTML内容\\\'; 3.使用元素节点的属性来改变 HTML 元素的属

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包