對於標題,我很抱歉。我似乎有一個問題。我只是一個初學者,我很抱歉,如果之前問過這個問題,我無法找到一個直接的答案。 (當我搜索類,指針和孩子,我得到了關於傳遞父或子指針的結果......我不想傳遞(this)子或父指針,我只想傳遞一個指針,我初始化了一個子類。 。給父母)。C++在子類的父類中設置指針變量,並在父類中使用它
class App
{
public:
virtual void init(void) { window = &BasicWindow(); }
virtual void createWindow(void) { window->create(); }
protected:
Window *window;
};
class Game : public App
{
public:
virtual void init(void) { window = &OpenGLWindow(); }
};
int main()
{
App *game = &Game();
game->init();
game->createWindow();
return 0;
}
這是合法的:什麼,我想在這裏做的是更好地解釋代碼? 我有一個從BasicWindow和OpenGLWindow派生的抽象Window類。 但是,當我創建窗口時,我在App::createWindow()
函數中得到了Access violation reading location
錯誤中斷window->create()
。
感謝
Omg,我現在感覺很愚蠢。謝啦!我以爲我不需要製作'新'類的實例,因爲我只需要一個窗口。但似乎我誤解了'在範圍內使用它'的部分。 – Nique 2011-02-24 09:39:39
@Nique,不要,我敢肯定,我們都在學習C++的漫長而艱難的道路上犯了類似的錯誤...... :) – Nim 2011-02-24 09:43:25