我有两个命名空间,每个命名空间都有一个指向其中一个命名空间内的类 Window 的指针。
图形.h
namespace Graphic {
//...
class Window;
//...
void init();
static Window* window;
}
App.h
namespace App{
//...
static Graphic::Window* mainWindow = nullptr;
//...
void init();
void setupGraphic();
//...
}
我正在尝试初始化static Window* App::mainWindow
与static Window* Graphic::window
Window.h
#include "Graphic.h"
#include <SDL\SDL.h>
class Graphic::Window
{
public:
Window(const char* pName = "OpenGL Window",
unsigned int pWidth = 1000, unsigned int pHeight = 700);
~Window();
const char* name;
unsigned int width;
unsigned int height;
SDL_Window* window;
};
Graphic::window 正在像这样初始化
图形.cpp
#include "Graphic.h"
void Graphic::init(){
window = new Window("Engine");
}
初始化之后我尝试初始化(static Window*)App::mainWindow
with Graphic::window
App.cpp
#include "App.h"
#include <Graphic\Graphic.h>
#include <Graphic\Window.h>
void App::setupGraphic()
{
Graphic::init();
App::mainWindow = Graphic::window;
}
But App::mainWindow
保持 nullptr,即使Graphic::window
已成功初始化并已在中使用Graphic::init()
。没有编译警告/错误,我得到的只是一个异常“App::mainWindow was nullptr”。