There is no need to have virtual functions.
This logic does not belong here. If client of ESM4::Cell needs to cache load results it can be done separately.
To avoid explicit initialization. It should happen in the load functions anyway. * Move all non-zero initializations to corresponding class definition. * Replace std::vector by std::array when it has constant size.