일반적으로 객체 지향 프로그래밍에서는 전역 변수를 사용하지 않아야합니다. 귀하의 경우, 메인 클래스의 변수에 정적 액세스 기능을 제공하여 문제를 해결할 수 있습니다. 하지만 이것이 OOP에 다소 반대되는 것을 알고 있어야합니다.
class MainClass
{
public:
static int mySharedValue(void) { return m_mySharedValue; }
static void setMySharedValue(int value) { m_mySharedValue = value; }
private:
static int m_mySharedValue;
}
Foo::myOtherClassFunction(void)
{
// do something
int bar = MainClass::mySharedValue();
// do some more
}
또한, 당신의 QApplication에서 기본 응용 프로그램을 유도 할 수 있으며, Qt는에 의해 제공되는 qApp
포인터를 통해 주요 개체에 액세스가 액세스 기능을 추가 할 수 있습니다. 또한 C에서 할 수있는 것과 같은 방식으로 전역 변수를 사용할 수 있습니다.하지만 권장하지는 않습니다.
.hpp 파일에서'extern' 키워드를 잊어 버렸습니다. hpp가 포함될 때마다'myGlobalInt'가 시작될 것입니다. – bluebrother
@bluebrother 고마워요, 고침. –