我有一个类“A”,它从应用程序的 GUI 中获取其变量的值。让我们说这些变量之一是“X”。然后,在另一个类“B”中,我想调用这个“X”并将它的值传递给另一个函数。
我所做的是我在类“B”中创建了一个名为“objectA”的类“A”的对象,然后调用“X”的值如下:
// class A:
void classA::function1(int gui_value){
x= gui_value;
}
然后在另一个班级:
//class B:
void classB::run(){
.
.
function2(/* I need to pass x here */);
.
.
}
函数和 x 都在头文件中正确定义。
我所做的是我在头文件中创建了一个classA的对象(让我们说:objectA),并使用“objectA”在“classB”中的“function2”中调用“x”的值,如下所示:
//class B:
void classB::run(){
.
.
function2(objectA->x);
.
.
}
假设“x”值等于“5”,当我在function2中调试“x”的值时,每次调试时它都会给我随机数。所以,我只是猜测这些随机值已经存在于内存中,这意味着“X”的值没有正确传递。
我认为,虽然创建了对象,但它每次都会创建一个变量“x”的新实例。即:不是从classA中获取“x”的值,它只是创建一个classA的对象及其所有变量。
我的问题是如何将在classA中获得的“x”的值直接传递给classB而不创建其变量的新实例?
更新:
感谢Doctorlove 的回答,我的代码现在运行良好。我的问题是在创建“objectA”并为其分配值后对其进行初始化。我正在做的是创建对象并将其直接传递到“classB”中。这就是为什么我得到随机值的原因,因为它只是一个新对象,在创建时在内存中具有任何值。