Поскольку вы еще не опубликовали никакого реального кода, который мы могли бы использовать, я сделаю предположение, как на самом деле выглядит ваш код:
хиджра:
#ifndef HEADER_A
#define HEADER_A
#include "B.h"
class A {
private:
B someMember;
};
B.h:
#ifndef HEADER_B
#define HEADER_B
#include "A.h"
class B {
public:
doSomething(A param);
};
B.cpp:
#include "B.h"
#include "A.h"
void B::doSomething(A param) { }
Как сказал Флинш, вам нужно иметь предварительные объявления, чтобы избежать проблем с порядком включения. Самый простой способ - избавиться от циклических включений в файлах .h и просто вместо этого включить предварительные объявления (class B;
и class A;
в A.h и B.h).