class Material
{
public:
void foo()
{
cout << "Class Material";
}
};
class Unusual_Material : public Material
{
public:
void foo()
{
cout << "Class Unusual_Material";
}
};
int main()
{
Material strange = Unusual_Material();
strange.foo(); //outputs "Class Material"
return 0;
}
これにより、「Class Unusual_Material」がコンソールに表示されるようにしたいと思います。これを達成する方法はありますか?私のプログラムには、他のより具体的なマテリアルが派生するクラス Material があります。メソッド Material::foo() は、ほとんどのマテリアルに適した Material のメソッドを表しますが、まれに、異常なプロパティを持つマテリアルに対して別の foo() を定義する必要があります。
私のプログラムのすべてのオブジェクトには、Material フィールドが含まれています。それらに通常とは異なるマテリアルが割り当てられている場合は、派生した通常とは異なる foo が呼び出されるようにしたいと思います。
これはおそらく非常に簡単か不可能のどちらかですが、どちらにしてもわかりません。
ありがとう