C ++は初めてですが、それでも理解できます。テンプレートを使用して私はこれを持っています:
template<typename TransportType>
Automobile<TransportType>::Automobile(std::string make)
: Transport(make)
だから私はこれらのいくつかを持っていますが、それらはすべて「トランスポート」から継承しています。たとえば、別のものは次のとおりです。
template<typename TransportType>
Aircraft<TransportType>::Aircraft(std::string make)
: Transport(make)
Automobile<Coach> * coach = new Automobile<Coach>("Volvo");
Aircraft<JumboJet> * jumbojet = new Aircraft<Jumbojet>("Boeing");`
私の質問は、あるトランスポートタイプがある場合、実行時までトランスポートタイプを入力せずに、どのようにそれを別のトランスポートタイプに「変換」できるかということです。例えば:
*coach = dynamic_cast<*jumbojet typeid<transporttype>>(jumbojet);`
(*ジャンボジェットtypeidであるかどうかわからないビット)
memcpyを見てみましたが、うまくいかなかったようです。(実際のオブジェクト内にポインターが含まれている場合は問題が発生する可能性があることを理解していますが、そうではありません。)
memcpy(*jumbojet, *coach, sizeof(coach))