How to properly manage two containers of different types in a class?
The answer is used only for 1 container.
The simplest solution would be to have a pure life method in a base class:
class PureAbstractClass
{
public:
virtual char Func() = 0;
virtual int FOption(A, B, C, D) = 0;
}
FOption() , . , . - , , . solution ( , ). dynamic_cast, :
PureAbstractClass *o = find( ... );
if( !o ) {
DoSomething();
return;
}
if( PureOpt1 *po1 = dynamic_cast<PureOpt1 *>( o ) )
po1->FOption1( A, B, C );
else {
if( PureOpt2 *po2 = dynamic_cast<PureOpt2 *>( o ) )
po2->FOption2( A, B, D );
else
}
: FOption1() FOption2() . .
boost::variant , , .