間違いさがし。

アバター
TOMY
記事: 53
登録日時: 13年前
住所: 愛知県
連絡を取る:

間違いさがし。

投稿記事 by TOMY » 13年前

昨日やらかしたミス。

CODE:


"CbulletBase.h"

class CEnemyBulletBase{					//敵弾の抽象基底クラス
protected:
	D3DXMATRIX	m_LocalMatrix;
	D3DXMATRIX	m_MoveMatrix;
public:
	virtual void BulletInit()=0;
	virtual void Update()=0;
	virtual void Draw()=0;
};

"Cbullet.cpp"
class CNormalShot :public CEnemyBulletBase{		//通常ショット(直線)
private:
	BulletBase	m_Bullet;
public:
	void BulletInit(const D3DXVECTOR2& ShotWldPos);
	void Update();
	void Draw();
};

class CSniper :public CEnemyBulletBase{			//狙撃弾
private:
	BulletBase	m_Bullet;
	D3DXVECTOR2 m_Move;
	//float		m_Rad;
	//float		m_Dis;
	float		m_Speed;
public:
	void BulletInit(const D3DXVECTOR2& ShotWldPos, const D3DXVECTOR2& TargetWldPos);
	void Update();
	void Draw();

};

class CSpread :public CEnemyBulletBase{			//拡散ショット(ランダム)
private:
	BulletBase	m_Bullet[10];
	float		m_rad[10];						//弾ごとのラジアン(拡散用)
public:
	void BulletInit(const D3DXVECTOR2& ShotWldPos);
	void Update();
	void Draw();
};
さあ、あなたはこのクッソ汚いプログラムに秘められたアホなミスを見つけられるろうか?

zxc
記事: 79
登録日時: 13年前

Re: 間違いさがし。

投稿記事 by zxc » 13年前

  仮想関数のBulletInit()が上書きできていない・・・・・?
仮引数も同じにしなければならないんですよね。

仮引数なしの関数を定義した後ならオーバーロードも出来たかと思います。

アバター
TOMY
記事: 53
登録日時: 13年前
住所: 愛知県
連絡を取る:

Re: 間違いさがし。

投稿記事 by TOMY » 13年前

正解です。昨日はそれでうん時間悩みぬいた揚句、先生にあっさり見抜かれ、酷い鬱になりました。
わかったつもりで使って痛い目見たいい例です。