Здравствуйте, Ухты, Вы писали:
У>Всем привет. Мучаюсь исключительно женским вопросом
В таком случае ответы наверняка будут мужскими =)
У>Есть такой класс
У>У>template<bla-bla>
У>class MemChunk
У>{
У> void *mem;
У> unsigned int nWrittenBytes;
У>...
У> unsigned int write(const void *data, unsigned int dataSize);
У>}
У>
У>Иногда возникает необходимость отдать mem наружу — например, его может домагиваться fread(). Задача — сохранить состояние валидным(т.е nWrittenBytes поправить в нужном количестве).
...
У>3. Давать, но чтоб женился — через функтор(функцию?), который вернёт использованный размер. Многих пугает организация подобных мероприятий.
Вот этот вариант мне импонирует больше всех. + такая функция(м.б. интерфейс(*) должна сама заботится о выполнении инвариантов. Т.е. если что-то нужно подправить, то она и должна это выполнять.
(*) Интерфейс "вообще" (не обязательно с виртуальными функциями)