0

異種のリストを介して仮想関数を呼び出すときに、メンバー データに値を割り当てる方法がわかりません。

これが私がやろうとしていることの例です:

class A
{
 protected:
 virtual void func1();

 private:
 A * list;
}

class B: public A
{
 protected:
 void func1();

 private:
 int i1, i2;
}

main() 内:

list = new A[10];

list[0] = new B;

list[0]->Func1();

Func1() の宣言:

void B::Func1()
{
 int a, b;

 cin >> a >> b;

 list[0]->i1 = a;
 list[0]->i2 = b;

 // or can I just do this:
 // i1 = a;
 // i2 = b;
}

メインから親クラスのポインターを介して呼び出す場合、派生クラスの関数内で派生クラスのメンバー データにアクセスする適切な方法を探しています。どんな助けでも大歓迎です!

4

1 に答える 1