Просто интересно, что будет быстрее?Если бы у меня был такой базовый класс
Class Base
{
virtual void Draw()
{
//something...
}
};
, тогда у меня был бы такой массив Base:
Base Array[255];
, который мог бы содержать и Base, и его производные.Это был бы один из способов, например, хранить различные команды рисования.(Я знаю, что это будет похоже на Java, но это только для примера. Классы только с одной функцией не имеют особого смысла.)
Теперь альтернативно, если бы я точно знал, какие производные я мог бы сделать, это могло бысделать это так
class Base
{
int ID;
};
затем массив Base, как раньше: Base Array [255];
И затем создать функции Draw в производных:
class Der1 : Base
{
void Draw()
{
}
};
class Der2 : Base
{
void Draw()
{
}
};
Теперь это решение, конечно, не позволяет мне просто перебирать массив и вызывать Draw для каждого объекта.Вместо этого нужно было бы сделать что-то вроде этого.
void CallDraw()
{
for (int i = 0; i < 255; i++)
{
switch(Array[i].ID)
{
case 1: //Der1
( (Der1) Array[i] ) . Draw();
case 2: //Der2
( (Der2) Array[i] ) . Draw();
}
И да, тем, кто до сих пор читал, актуальный вопрос.Что было бы быстрее, если бы вы знали производные?Создание организованной системы самостоятельно или использование виртуальных функций?
И есть ли что-то еще, что следует принять во внимание?(может быть, чистота кода, но я бы предпочел показать, какой у меня тип класса в коде, поэтому я не обеспокоен приведениями.