Итак, у меня есть 2 класса, назовем их классами A и B, которые внутри этих классов имеют ссылку друг на друга как аргумент функции. Когда я пытаюсь передать объявить это следующим образом:Вперед объявить классы, переопределение классов
// A.h (Header guarded)
namespace ns {
class B { // Attempt to forward declare B
public:
int getRand();
};
class A {
public:
float a, b;
void aFunc(B &b);
};
}
// B.h (Header guarded)
namespace ns {
class A { // Attempt to forward declare A
public:
float a, b;
};
class B {
public:
void bFunc(A &a);
int getRand();
};
}
Дело в том, когда я делаю это я получил 'class' type redefinition
ошибку. Я искал решение и до сих пор не пришел к решению. Правильно ли я это делаю? Который я предполагаю, что я не, вы можете сказать мне, где я сделал неправильный здесь?
Это не передовая декларация, которую вы получили там! «класс B» будет. – jrok
@jrok hmm, но что, если мне нужно получить доступ к переменным B от A? Без него он будет генерировать ошибку, которая является «неполным типом не разрешена» – Greffin28
Это зависит от классов. Расскажите нам больше о них и чего вы хотите достичь. – jrok