I have a base class DataProcessor. This is the base class for position calculators in some coordinate system. So, for example, it can have descendants like: SphericDataProcessor, CartesianDataProcessor. There is a base class CookedDataCatalogue, which is the base class for containers from the position of some objects. Therefore, everyone DataProcessorshould have their own data for each CookedDataCatalogue. I can imagine something like this:
class CookedDataCatalogue
{
virtual void Transform(DataProcessor* dp) = 0;
virtual void PutData(???) = 0;
}
class CookedDataCatalogue1 : public CookedDataCatalogue
{
void Transform(DataProcessor* dp) override
{
dp->TransformTo(this);
}
}
class CookedDataCatalogue2 : public CookedDataCatalogue
{
...
}
class CookedDataCatalogue3 ...
class DataProcessor
{
virtual void Process() = 0;
virtual void TransformTo(CookedDataCatalogue1* c) = 0;
virtual void TransformTo(CookedDataCatalogue2* c) = 0;
virtual void TransformTo(CookedDataCatalogue3* c) = 0;
}
. void Transform(DataProcessor*) **. -, , CookedDataUserCatalogue, void TransformTo(CookedDataUserCatalogue). -, , PutData(), . ?
? - , ?