January 4, 2003
Ett knep:
CBas apMinArray[10];
CA KlassAInstans;
CB KlassBInstans;
for(int i = 0; i < 10; i++)
{
if(rand()%2) apMinArray[i] = &KlassAInstans;
else apMinArray[i] = &KlassBInstans;
}
for(int i = 0; i < 10; i++)
{
CA *pA = dynamic_cast
CB *pB = dynamic_cast
if(pA) pA->SpecefikACommand();
if(pB) pB->SpecefikBCommand();
apMinArray[i]->BasKommando();
}
Sedan kan du använda virtuals också för att uppnå den funktionen som du vill ha. Det beror lite på vad du skall göra.
January 4, 2003
Gör en bas klass med virtuals då.
class CBas
{
public:
virtual void PerformAction()
{
}
virtual void MustBeImplemented() = 0;
};
class CA
{
public:
void MustBeImplemented()
{
printf("Doing Stuff with An");
}
};
class CA
{
public:
void PerformAction()
{
printf("Yay, this B class can do this!n");
}
void MustBeImplemented()
{
printf("Doing Stuff with Bn");
}
};
något sånt då ?
1 Guest(s)