class test
{
public:
virtual void func() { printf("失敗"); }
virtual void set(int num) { a = num; }
protected:
int a = 0;
};
class Ally : public test
{
public:
void func() { printf("Ally%d", a); }
};
int main()
{
std::vector<test*> vec;
Ally ally;
aly.set(1);
vec.push_back(&aly);
ally.set(2);
vec.push_back(&ally);
vec[0]->func();
vec[1]->func();
Sleep(2000);
return 0;
}
DXLIBを使ってキャラクターを不特定多数出現させて各々の動きをさせてみたいので、クラスを使い仮想関数を上書きしてユニークキャラを作ろうとしていたのですが、うまいこといきません。
継承元クラス自体にprotectedで位置情報、publicで動き関数をつけて継承元vectorをぐるぐる回せば何とかなるようにしてみたいのですが、どうすればいいでしょうか。
vectorは勝手にnew,deleteしてくれる便利屋さんという認識です。
今回vector<*>を初めて使うので教えていただきたいです。
よろしくお願いします。
[1] vector<継承元ポインタ>を使って継承先の関数、変数を使いたい。
[1.1] Ally1Ally2と表示したい
[1.3] func()が"失敗"と表示されるかAlly2Ally2と表示されるかしかできないです。