Здравствуйте, A.J., Вы писали:
AJ>Как насчет того, чтобы перенести методы, которые интенсивно используют эти атрибуты (данные), в классы, которые имеют эти атрибуты (данные)?
Именно так я и сделал. Сначала все было в одной куче, много данных и много методов, все в одном классе. Затем, логически сгруппированные методы переехали в собственные классы, соот-но прихватив с собой данные, которые они интенсивно юзают. И если раньше я мог получить любой параметр через:
struct PAR_MAP_ENTRY
{
int parId;
void *pVar;
};
const PAR_MAP_ENTRY ControlObject::parMap[] =
{
{ 1, &common.par1},
{ 2, &common.par2},
//.........................
{ 10, &alg1.par1},
//.........................
{ 20, &alg2.par1}
};
ControlObject::GetParam( int parId, void *pVal)
{
// Ищем свой параметр в parMap[] и достаем значение по адресу
}
то теперь я могу такое делать лишь с оставшимися данными. Чужие просто в карту нельзя добавить, т.к. они private.
AJ>Или вынести эти методы в общий базовый класс, а данные получать через виртуальные set/get?
"Эти" это какие?
Если получать через вирт. set/get, то их надо реализовывать в каждом классе (и соот-но городить карту параметров тоже в каждом классе). Получается вариант 3 опять же.
Или Вы имели ввиду что-то другое?