関数 move を使用して、vir という名前のクラスを作成しました。
class vir
{
public:
vir(int a,int b,char s){x=a;y=b;sym=s;}
void move(){}
};
(変数 int x、int y、および char sym を持つクラスから派生したものです) これから、subvir と呼ばれるクラスを派生させました。
class subvir:public vir
{
public:
subvir(int a,int b,char s){x=a;y=b;sym=s;}
void move();
};
subvir::move()
{
x++;
return;
}
次に、vir の配列を作成し、そこに subvir を入れました。
subvir sv1(0,0,'Q');
vir vir_RA[1]={sv1};
しかし、sv1.move() を使用しようとすると:
vir_RA[0].move();
subvir move ({x++}) ではなく、vir move ({}) を使用します。sv1 を vir に、vir_RA を vir にしようとしましたが、動作し、両方を subvir にすると動作しますが、異なる必要があります。vir::move() を純粋な仮想にしようとしましたが、配列を実証するエラーが発生します。配列から使用するときに move() を機能させる方法を知っている人はいますか?