Функция foo()
объявлена в файле b.h:
void foo();
А определена в файле a.cpp без инклуда b.h:
#include <iostream>
void foo() {
std::cout << "foo" << std::endl;
return;
}
Используется в main.cpp:
#include "b.h"
int main(int argc, char* argv[]) {
foo();
return 0;
}