Здравствуйте, SV., Вы писали:
SV.>Немного позже покажу, как такую задачу решал я.
Небольшая поправка — не решал, а решал бы. Я сейчас вспомнил детали того, что реально решал, и там среда диктовала свои условия. И как раз ООП очень не хватало.
Так вот. Свой счет я посадил бы поверх таблицы проводок, и он бы хранил внутренний уникальный идентификатор плюс банковскую атрибутику. Получение состояния на любой момент времени, оборотов за период (а также входящее и исходящее сальдо периода) было бы реализовано в нем в виде методов. Там же — валютный пересчет на основе входящей ссылки на объект, представляющий Форекс (или, по-простому, конфиг текущей сессии). И это как раз и есть модель реального счета. С одной стороны она соответствует модели в голове у бухгалтера, поскольку основывается на проводках. С другой стороны, ее можно отдать, допустим, программисту гуёв, и он найдет в ней и .CalcCurrentBalance(), и что его душе угодно. Не проблема хранить пачку счетов (вектор, например), поскольку реальные инкапсулируемые данные в памяти малы.