LINUX.ORG.RU
Ответ на: комментарий от jreznot

a.h:

#ifndef A_H
#define A_H

class A {};

#endif

b.h:

#ifndef B_H
#define B_H

#include "a.h"

class B : public A {};

#endif

c.h:

#ifndef C_H
#define C_H

#include "a.h"
#include "b.h"

class C : public A {
public:
    B field;
};

#endif

Реализация будет в a.cpp, b.cpp и c.cpp.

Должно работать.

sjinks ★★★
()

Я не понял проблемы. Такой код прекрасно компилируется:

class A
{
public:
  int x;
};

class B : public A
{
public:
  int y;
};

class C : public A
{
public:
  B b;
};

int main()
{
  C c;
  c.b.y = 100500;
  c.b.x = 9000;
  return 0;
}

Raving_Zealot ★★
()
Ответ на: комментарий от annoynimous

Всё, разобрался, там был баг с циклической ссылкой вдобавок, ещё из-за него нифига не видел в чём проблема

jreznot
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.