#include <iostream>
class BarParent
{
virtual void fuz()
{
std::cout << "BarParent" << std::endl;
}
};
class BarChild : public BarParent
{
virtual void fuz()
{
std::cout << "BarChild" << std::endl;
}
};
class Foo
{
// ??BarParent bar;??
public:
Foo(BarParent bar);
};
私が求めているのは、コンストラクターに渡されたコピーを保存し、正しいを呼び出しながら、に常駐させることですBarParentFoovirtual function
これは組み込みアプリケーションです。ヒープの使用は嫌われます。したがって、できればヒープなし
概要: 知る限りでは、スライシングの問題(コンパイラがジェネリックのサイズを判断できないBarなど、型キャストをコピーすること) のため、これを行うことはできません。そのため、ポリモーフィズムを実現できません。テンプレートを使用することは良い考えかもしれませんが、複数のclassesFoo<typename BarType>を定義します。その結果、コンパイラはこれを class に対してのみ定義されているものとして定義するため、functionなどを実行することはできません。誰かがより良いアイデアを持っている場合は、私に知らせてください。changeBar(BarParent)changeBar(BarType)Foo<Bartype>
私はヒープ、またはconst Barparentポインタに行く必要があると思います。ユーザーがconst_casts の場合、彼はトラブルを求めているのであって、私のせいではありません!