可能です異なるオブジェクトタイプのキューを作成できますが、インターフェイスは同じですか?MultiClass Queue C++を作成する
例として、私は、SensorItemC SensorItem呼ばれるインターフェース、およびクラス、SensorItemA 、SensorItemB、 の4種類を持っている私のクラスのキュー(コーラ) ザッツSensorItemD `
queue <SensorItem> cola;
void encolar(SensorItem* dato)
{
cola.push (*dato);
}
SensorItem* sacar()
{
SensorItem* d=cola.front();
cola.pop();
return d;
}
とここで私それを使用しようとする
void main()
{
Cola c=new Cola();
TemperatureItem t=new TemperatureItem(3.25);
c.encolar(t);
ImuItem i=new ImuItem(3,4,8);
}
私の構文で何かが間違っていますか?それともできないのですか?
親クラス(Sensor Items)のキューを作成し、その親クラスの子でいっぱいにすることで多態性(継承)を実現できます。あなたがよく知らないのであればここで多形性を読んでください:http://www.cplusplus.com/doc/tutorial/polymorphism/ –
これはまさに私がやったことでしたが、アイテムをプッシュしようとするとこのエラーが現れます 無効な引数 ' 候補以下があります: void encolar(std :: SensorItem *)これは私のプッシュです:TemperatureItem t = new TemperatureItem(3.25); c.encolar(* t); TemperatureItemはSensorItemからの継承を持っています:( –
無関係: 'main'は' void'ではなく 'int'を返します。何も返さずに' main'の終わりに来たら、コンパイラは 'return 0'を挿入します。 –