C++ как использовать методы класса до его объявления?

Всем привет! Возможно ли использовать в С++ метод какого-то класса до его объявления? Например как-то так (пример естественно не компилируется):

A.h:

struct B;
B* ptrB;

struct A
{
void doA();
}

B.h:

struct B
{
void doB();
}

A.cpp:

#include "A.h"
    void A::doA()
    {
    ptrB->doB();
    }

main.cpp:

#include "A.h"
#include "B.h"

int main()
{
//......dosomething
}

Или как-то извернуться, чтобы получилось так без перемещения В выше А? Ну или хотя бы передать как-то классу В, вызвав метод из А?


Ответы (1 шт):

Автор решения: Harry

Еще раз и медленно...

a.h

struct B;
extern B* ptrB;

struct A
{
    void doA();
};

b.h

struct B
{
    void doB() {}
};

a.cpp

#include "A.h"
#include "B.h"

void A::doA()
{
    ptrB->doB();
}

main.cpp

#include "A.h"
#include "B.h"

B* ptrB;

int main()
{

}
→ Ссылка