Когда программисты используют оптимизацию пустой базы (EBO)

Я читал об оптимизации пустой базы (EBO). Во время чтения у меня в голове возникли следующие вопросы:

  1. В чем смысл использования пустого класса в качестве базового, когда он ничего не вносит в производные классы (ни с точки зрения функциональности, ни с точки зрения данных) ]?

  2. В этой статье я прочитал следующее:

// S пусто
В чем смысл использования пустого класса в качестве базового, если он ничего не вносит в ...

Я читал об оптимизации пустой базы (EBO). Во время чтения у меня в голове возникли следующие вопросы:

  1. В чем смысл использования пустого класса в качестве базового, когда он ничего не вносит в производные классы (ни с точки зрения функциональности, ни с точки зрения данных) ]?

  2. В этой статье я прочитал следующее:

// S пусто
В чем смысл использования пустого класса в качестве базового, если он ничего не вносит в ...

Я читал об оптимизации пустой базы (EBO). Во время чтения у меня в голове возникли следующие вопросы:

  1. В чем смысл использования пустого класса в качестве базового, когда он ничего не вносит в производные классы (ни с точки зрения функциональности, ни с точки зрения данных) ]?

  2. В этой статье я прочитал следующее:

// S пусто
структура класса T: S
{
int x;
};

[...]

Обратите внимание, что мы не потеряли ни данных, ни точность кода: при создании автономный объект типа S, размер объекта по-прежнему равен 1 (или больше), поскольку перед; только когда S используется в качестве базы класс другого класса делает свою память занимаемая площадь сокращается до нуля. Осознать влияние этой экономии, представьте себе вектор, содержащий 125 000 объекты. Один EBO спасает половину мегабайт памяти!

Означает ли это, что если мы не будем использовать «S» в качестве базового класса «T», мы обязательно потребляем двойной мегабайт памяти? Я думаю, в статье сравниваются два разных сценария, которые я не считаю правильными.

Я хотел бы знать реальный сценарий, когда EBO может оказаться полезным. (Означает, что в том же сценарии мы бы обязательно быть в затруднительном положении, ЕСЛИ мы не используем EBO!).

Обратите внимание, что если ваш ответ содержит такие пояснения:

Все дело в том, что пустой класс имеет ненулевой размер, но когда производное или производное может иметь нулевой размер, тогда я НЕ спрашиваю об этом, поскольку я это уже знаю. Мой вопрос в том, зачем вообще кому-то унаследовать свой класс от пустого? Даже если он не t извлекает и просто записывает свой класс (без пустой базы), он в ЛЮБОЙ форме теряется?

19
задан Nawaz 7 January 2011 в 10:34
поделиться