W.I.S. Laboratory
menu-bar

Rust


Rustでポリモーフィズムのようなことをしてみる

Rustはトレイト単位でしか継承ができないので、C++に例えると純粋仮想関数しか継承できない。
なので「基底クラスが派生クラスへ振る舞いを変える」という動的ポリモーフィズムは、言語仕様的に無理なのではないかと思う。
トレイトには関数の実装を強制する力しかないため、C++で言うところの(純粋ではない)仮想関数を置く場所がないのだ。
ただ、構造体をヒープに生成(Box化)して親トレイトの型へキャストすることで構造体同士のポリモーフィズムのようなことは行える。


[ 戻る ]
saluteweb