派生クラスへのポインタが勝手にNULLになる
Posted: 2013年8月13日(火) 02:17
こんばんは。
今までC言語とDXライブラリを用いて、ゲームを作成してきたのですが、
オブジェクト指向の勉強をしてみたいと思い、C++で何かを書こうと思い立ちました。
今回は、ゲームの1要素である「エフェクト」を作ってみようとしました。
エフェクト全体を扱うクラスをmainでnewしたときに(そのコンストラクタで)、
実際のエフェクト(基本エフェクトクラスから派生)をnewし、
そのポインタを全体を扱うクラスのメンバのポインタmlpNowEffect(型は基本エフェクトクラス)に保持します。
この時(保持した瞬間)はそのポインタがしっかりと保持されているのですが、
全体を扱うクラスの別のメンバ関数をmainから呼んだときには、ポインタがNULLになっていて、
正常にその先を呼び出すことができません。
どこでNULLになっているのか、ブレークポイント等を設置して調べてみたのですが、見当がつかず。。。
助言を頂けないでしょうか?
ソースは以下です(要DXライブラリ)。ビルドが通るのは確認しています。
http://www1.axfc.net/uploader/so/2994046.zip
[DLパス]
cppeffect
環境は以下です。
・OS:Windows 8
・開発環境:Visual Studio 2012 Professional
また、C++のクラスの勉強用に書いたソースですので、クラスの構成や名前、機能などに
改良できる点などがあれば、指摘お願いいたします。
今までC言語とDXライブラリを用いて、ゲームを作成してきたのですが、
オブジェクト指向の勉強をしてみたいと思い、C++で何かを書こうと思い立ちました。
今回は、ゲームの1要素である「エフェクト」を作ってみようとしました。
エフェクト全体を扱うクラスをmainでnewしたときに(そのコンストラクタで)、
実際のエフェクト(基本エフェクトクラスから派生)をnewし、
そのポインタを全体を扱うクラスのメンバのポインタmlpNowEffect(型は基本エフェクトクラス)に保持します。
この時(保持した瞬間)はそのポインタがしっかりと保持されているのですが、
全体を扱うクラスの別のメンバ関数をmainから呼んだときには、ポインタがNULLになっていて、
正常にその先を呼び出すことができません。
どこでNULLになっているのか、ブレークポイント等を設置して調べてみたのですが、見当がつかず。。。
助言を頂けないでしょうか?
ソースは以下です(要DXライブラリ)。ビルドが通るのは確認しています。
http://www1.axfc.net/uploader/so/2994046.zip
[DLパス]
cppeffect
環境は以下です。
・OS:Windows 8
・開発環境:Visual Studio 2012 Professional
また、C++のクラスの勉強用に書いたソースですので、クラスの構成や名前、機能などに
改良できる点などがあれば、指摘お願いいたします。