如何让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的函数来改变全局区域中的一个变量。
如果我像上面这样写代码,是否正确?
如果没有请教我怎么做,或者有更好的方法吗?
我的目标是创建一个名为 cls1
、cls1.varA = var1
的 cls
实例,它是 0
并且函数 putvalueAtoVar2
是 运行,它应该将全局变量 var2
,即 10
更改为 cls1.varA
的值,即 0
.
你可以使用这个
之前的全局变量是globalVar1=0
和globalVar2=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;
}
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的函数来改变全局区域中的一个变量。
如果我像上面这样写代码,是否正确?
如果没有请教我怎么做,或者有更好的方法吗?
我的目标是创建一个名为 cls1
、cls1.varA = var1
的 cls
实例,它是 0
并且函数 putvalueAtoVar2
是 运行,它应该将全局变量 var2
,即 10
更改为 cls1.varA
的值,即 0
.
你可以使用这个
之前的全局变量是globalVar1=0
和globalVar2=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;
}