現在趣味でゲームプログラミングをしているものです。親クラスのEnemyクラスと子クラスのskeboクラスを作ったんですけど、親クラスと子クラスで同じ名前のクラスを作ったら上書きされるんですよね?ところがSkeboクラスのインスタンス作って親クラスのappearEnemy()というメソッドを使ったら、子クラスであるSkeboクラスのSetY()ではなく、親クラスのEnemyクラスのSetY()が使われました。SetY()はオーバーライドで上書きされたんじゃないんですか?また、なんでこんな面倒くさい仕様なんですか?SkeboクラスのSetYを呼び出すには、apparEnemy()を子クラスにも作らないといけないんですよね。これからもEnemyの子クラスはたくさん作る予定だし、そのたびに子クラスのSetY()を呼び出すには子クラスでappearEnemy()作らないといけないんですか?
C++
1//enemy.h 2class Enemy { 3protected: 4 int m_x; 5 int m_y; 6 void setX(); 7 void setY(); 8 9public: 10 void appearEnemy(); 11}; 12
C++
1//enemy.cpp 2void Enemy::setX() { 3} 4 5void Enemy::setY() { 6} 7 8void Enemy::appearEnemy() { 9 setX(); 10 setY(); 11}
c++
1//skebo.h 2class Skebo :public Enemy{ 3 4private: 5 void setX(); 6 void setY(); 7 8};
c++
1//skebo.cpp 2void Skebo::setX() { 3} 4 5void Skebo::setY() { 6}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/02/21 05:26
2018/02/21 06:14