У меня есть два класса:
class ClassA {
public:
ClassB *classB;
int i = 100;
}
// and:
class ClassB {
public:
void longProcess();
}
Я запускаю пустоту из ClassB():
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()? На самом деле мне нужно запустить этот длинный код в другом потоке, поэтому мне нужно получить переменную «i» из ClassB, когда longProcess() завершит свою работу. Какие-либо предложения?
Обновление: я пытаюсь написать код для сохранения указателя на родительский класс
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=[ 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();