我有两节课:
class ClassA {
public:
ClassB *classB;
int i = 100;
}
// and:
class ClassB {
public:
void longProcess();
}
我从 ClassB() 中运行 void:
ClassA classA = new ClassA();
classA->i = 100;
classA->classB = new ClassB();
classB->longProcess(); // it's a long process!
// but when it will finish - I need to get the "i" variable from ClassA
如何从方法中获取“int i”变量:longProcess()?实际上,我需要在另一个线程中运行这个长代码,这就是为什么当 longProcess() 完成工作时我需要从 ClassB 中检索“i”变量的原因。有什么建议么?
更新:我尝试编写一些代码来保存指向父类的指针
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=[ ChildClass.h ]-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include "ParentClass.h"
class ChildClass {
public:
ChildClass();
ParentClass *pointerToParentClass; // ERROR: ISO C++ forbids declaration of 'ParentClass' with no type
void tryGet_I_FromParentClass();
};
错误:ISO C++ 禁止声明没有类型的“ParentClass”
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=[ ChildClass.cpp ]-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include "ChildClass.h"
ChildClass::ChildClass(){}
void ChildClass::tryGet_I_FromParentClass(){
// this->pointerToParentClass...??? it's not work
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=[ ParentClass.h ]-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include "ChildClass.h"
class ParentClass {
public:
ParentClass();
ChildClass *childClass;
int i;
};
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=[ ParentClass.cpp ]-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include "ParentClass.h"
ParentClass::ParentClass(){
childClass = new ChildClass();
childClass->pointerToParentClass = this;
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=[ MainWindow.cpp ]-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
ParentClass *parentClass = new ParentClass();