Есть абстрактный класс:
class A{
public: virtual int foo() = 0;
}
есть потомки (соответственно B и C)
class B{
public: int foo(){};
}
тоже самое с С. Задача объеденить В и С в одну стркутуру, и взависимости от объекта выполнить функцию foo. Вот так у меня:
инициализация:
target = malloc (sizeof(A)*2);
ob_B = new B;
ob_C = new C;
target = ob_B;
* ( &target + sizeof(A)) = ob_C;
уже обращение:
((А*) target)->foo();
( (A*) * ( &target + sizeof(A)) )->foo();
Соотвтетственно ед. отличие между А и В и С - эт функция foo(). Вопрос: насколько мой вариант кашерен, грамотен, правилен, возможно глюкавен и т.д. Особо интересует (возможность)/(не возможность) сегфолта