デフォルトのコンストラクターを使用してオブジェクトを初期化し、コンストラクターをパラメーターで使用してDirectXインターフェイスをコピーするという深刻な問題があります。
SpriteBatch spriteBatch; //Creating an Object to SpriteBatch Class
//This Function Gets Called when Device is Created with Parameter to Device
void LoadContent(GraphicDevice graphicDevice)
{
/*Here is the Problem, When it Assigns to the Object it creates a Temp Object and
Destructor gets called where I free everything, I can't use the GraphicDevice after
this.*/
spriteBatch = SpriteBatch(graphicDevice);
}
//SpriteBatch Class
class SpriteBatch
{
GraphicDevice graphicDevice;
public:
SpriteBatch();
SpriteBatch(GraphicDevice graphicDevice);
~SpriteBatch();
}
SpriteBatch::SpriteBatch()
{
}
SpriteBatch::SpriteBatch(GraphicDevice graphicDevice)
{
this->graphicDevice = graphicDevice;
}
SpriteBatch::~SpriteBatch()
{
graphicDevice-Release();
}
2つのオブジェクトをコピーするときではなく、プログラムが終了したときにデストラクタが呼び出されるようにします。代入演算子とコピーコンストラクターをオーバーロードしてみましたが、役に立ちませんでした。とにかくそれをすることはありますか?