Downcasting de herança do C ++
Eu tenho minha classe base da seguinte forma:
class point //concrete class
{
... //implementation
}
class subpoint : public point //concrete class
{
... //implementation
}
Como faço para converter de um objeto de ponto para um objeto de subponto? Eu tentei todos os três dos seguintes:
point a;
subpoint* b = dynamic_cast<subpoint*>(&a);
subpoint* b = (subpoint*)a;
subpoint b = (subpoint)a;
O que há de errado com esses elencos?