저는 C++을 처음 사용하고 codelite를 처음 사용하고 wxCrafter를 처음 사용했습니다. 몇 가지 GUI 애플 리케이션을 구축하려하지만 C++의 객체 패스 스루에 대해 엉망입니다. 나는 몇 시간을 보냈고, 나는 그저 약간 이해했다. 먼저 wxFrame/wxDialog 사이에 변수를 전달하려면 해당 클래스의 인스턴스를 만들어야합니다. 사용자가 입력 한 값 frameB.cpp액세스 wxFrame (s) 및 wxDialog (s) globally
void frameB::connect(frameA *upper) {
//now I can access frameA via upper
}
뿐만보다 복잡한 경우 (예. 10 개 프레임)에 대한 frameA.cpp
void frameA::buttonAClicked() {
frameB * frameB1 = new frameB(NULL);
frameB1->connect(this);
}
에
프레임들 사이에서 공유 될 필요가있다. 부모님이 프레임/대화 상자를 처리하는 것이 더 좋습니다. 모든 클래스는 main.cpp에 의해 트리거 되었기 때문에 MainApp()가 좋은 아이디어라고 생각합니다. 그래서 이렇게하려고 :
MAIN.CPP : 모두 frameA.cpp 및 frameB.cpp에서
class MainApp : public wxApp {
public:
frameA * frameA1;
frameB * frameB1
//frameC, frameD, frameE etc.
MainApp() {}
virtual ~MainApp() {}
virtual bool OnInit() {
frameA1 = new frameA(NULL);
frameB1 = new frameB(NULL);
frameA1->connect(this);
frameB1->connect(this);
SetTopWindow(frameA);
return GetTopWindow()->Show();
}
};
:
frameA::connect(wxApp *par) {
this->parent = par;
}
가 지금은
parent
를 통해 MainApp에 액세스 할 수있어, 그러나 두 개의 구성원 개체 (하나는 자체)가 없습니다. 내가 놓친 게 있니? 저는 C++을 처음 접했습니다. 그게 더 좋은 방법 (또는 공식적인 방법) 할 수 있습니까?