更改 main 中对象的值

Changing values of object in main

本文关键字:对象 main 更改      更新时间:2023-10-16

我在从主方法修改对象的值时遇到问题。

class player
{
public:
int a=1;
};

当 im 不在对象中时,我如何使用 int a,例如,我想添加 10。当我想将A + 10打印到控制台时,它可以工作

player *test = new player()
//this works , result is 11
cout << test->a + 10 << endl;
//but when i try to do :
(test->a-10); //it compiles but the value doesnt change 

我试图以几种方式访问该值,但没有任何效果,例如。

*(test->a)-10;
(*test->a -10) ;

如何直接使用此值?我想把 a 变成 *a 但是或 shared_ptr但我需要知道是否有办法直接更改它.

这是我的第一篇文章,我搜索了堆栈溢出,找不到与我的问题相关的任何内容。

谢谢

也许你应该读一读一本介绍C++书。关于这个问题,test->a -= 10应该起作用。相当于test->a = test->a - 10。在这里,test->a相当于*(test.a)

(test->a-10);不会更改该值;cout << test->a + 10 << endl;也不会更改,但是您可以在打印时看到突变的值。不过,它实际上并没有改变值。

您需要执行类似 test->a -= 10; 的操作来更改值。

通过执行test->a+10,您不会更改 test->a 的值。您只打印比 test->a 中的值大10的值。

正确的方法是 test->a += 10test->a = test->a + 10 .

相关文章: