LINUX.ORG.RU

История изменений

Исправление Begemoth, (текущая версия) :

Нужно, чтобы они изменяли количество активных объесктов (active) в классе, в котором находится список

Не-не нужно несколько иное - знать количество активных объектов. И тут есть ещё вариант спрашивать у объект, активен ли он.

Твой вариант 1 совсем плох, и active должна быть атомарной, и повысится связанность классов A и B. Твой вариант 2 лучше, т.к. остаётся только требование атомарности active. Мой вариант (ИМХО) самый простой и требует только потокобезопасности функции bool A::isActive() const, которая и так в виду константности должна быть потокобезопасной. Так что тебе надо ответить на вопрос - насколько часто изменяется активность объектов и насколько часто требуется количество активных объектов и учесть требования к производительности этих классов.

Исходная версия Begemoth, :

Нужно, чтобы они изменяли количество активных объесктов (active) в классе, в котором находится список

Не-не нужно несколько иное - знать количество активных объектов. И тут есть ещё вариант спрашивать у объект, активен ли он.

Твой вариант 1 совсем плох, и active должна быть атомарной, и повысится связанность классов A и B. Твой вариант 2 лучше, т.к. остаётся только требование атомарности active. Мой вариант (ИМХО) самый простой и требует только потокобезопасности функции boolA::isActive() const, которая и так в виду константности должна быть потокобезопасной. Так что тебе надо ответить на вопрос - насколько часто изменяется активность объектов и насколько часто требуется количество активных объектов и учесть требования к производительности этих классов.