如何让class成员函数编辑全局变量的值

How to make a class member function edit the value of global variable

int var1 = 0;
int var2 = 10;

class cls{

    int varA;
    int *varB;

public:
    cls(int valueA, int *valueB){
        varA = valueA;
        *varB = *valueB;
    }

    void putValueAtoVar2(void){
        *varB = varA;
    }
}

void setup(){
    cls cls1(var1, &var2);
}

void loop(){
    cls1.putValueAtoVar2();
}

我在这里很困惑,我想做一个class的函数来改变全局区域中的一个变量。

如果我像上面这样写代码,是否正确?

如果没有请教我怎么做,或者有更好的方法吗?

我的目标是创建一个名为 cls1cls1.varA = var1cls 实例,它是 0 并且函数 putvalueAtoVar2 是 运行,它应该将全局变量 var2,即 10 更改为 cls1.varA 的值,即 0.

你可以使用这个

之前的全局变量是globalVar1=0globalVar2=10之后的

将实例变量 cls.varA 分配给 globalVar2,变为 globalVar2=0

下面是以下代码:

#include <iostream>
using namespace std;

int globalVar1 = 0;
int globalVar2 = 10;

class cls{

    int varA;
    int *varB;

public:
    cls(int gVar1,int* gVar2){
        varA = gVar1;
        varB = gVar2;
    }

    void putValueAtoVar2(void){
        *varB = varA;
    }
};


int main()
{
    //setup
    cls cls1(globalVar1, &globalVar2);
    cout<<"global variable "<<"1st : "<<globalVar1<<" 2nd : "<<globalVar2<<endl;
    //changing the value of global variable
    cls1.putValueAtoVar2();
    cout<<"After changing global variable "<<endl;
    cout<<"global variable "<<"1st : "<<globalVar1<<" 2nd : "<<globalVar2<<endl;
    return 0;
}