Переместите реализацию Foo::foo_method()
, чтобы было доступно определение Bar
.
Поскольку это не шаблон функции, вы можете переместить его в файл .cpp.
Foo.h:
#pragma once
class Foo {
public:
void foo_method();
template <typename U>
static void foo_other_method() {
// some code
}
};
Bar.h:
#pragma once
// Need this so Foo::foo_other_method() can be used.
#include "Foo.h"
class Bar {
public:
static void bar_method() {
Foo::foo_other_method<int>();
}
};
Foo.cpp:
#include "Foo.h"
#include "Bar.h"
void Foo::foo_method()
{
Bar::bar_method();
}