Я пытаюсь реализовать абстрактный класс «примитив» определяется какАбстрактный класс с методом с типом данных, определенным впоследствии, который имеет указатель на класс. Обойдя
class Primitive
{
virtual bool intersect(Ray& ray, float* thit, Intersection* in) = 0;
virtual bool intersectP(Ray& ray) = 0;
virtual void getBRDF(LocalGeo& local, BRDF* brdf) = 0;
};
Моя проблема заключается в том, что Примитив содержит метод пересекаются, который использует тип Пересечения который определяется как
class Intersection
{
LocalGeo localGeo;
Primitive* primitive;
};
Intersection имеет ссылка на примитив. Таким образом, я не могу скомпилировать это, поскольку компилятор сообщает об ошибке, что Intersection не определяется так, как это происходит после определения Primitive.
Проблема сводится к ...
class A
{
void afunc(B *b);
};
class B
{
A *a;
}
есть способ определить классы таким образом? Я пытался Google, но я не был уверен, что делать с Google.
Благодаря
вперед декларируют 'Intersection'. – lapk