Есть абстрактный класс:
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(). Вопрос: насколько мой вариант кашерен, грамотен, правилен, возможно глюкавен и т.д. Особо интересует (возможность)/(не возможность) сегфолта
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от ale
Ответ на:
комментарий
от ale
Ответ на:
комментарий
от YesSSS
Ответ на:
комментарий
от ale
Ответ на:
комментарий
от ale
Ответ на:
комментарий
от YesSSS
Ответ на:
комментарий
от YesSSS
Ответ на:
комментарий
от ale
Ответ на:
комментарий
от ale
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Type casting в c++. (2021)
- Форум Содержит ли данный код UB? Попытка №2 (2018)
- Форум Оцените PHP-класс для роутинга (2021)
- Форум сваливается send (сокет) (2008)
- Форум Тёмные углы C и C++ (2013)
- Форум Как правильно оценить фототехнику для продажи? (2013)
- Форум Оцените (2006)
- Форум Оцените (2006)
- Форум Filesystem in userspace. Насолько портабельно ? (2005)
- Форум Оцените ШГ (2013)