$ cat a.cpp
#include <stdio.h>
struct A
{
void foo() { printf("a.cpp: A::foo()\n");}
};
void fooA()
{
A a;
a.foo();
}
$ cat b.cpp
#include <stdio.h>
struct A
{
void foo() { printf("b.cpp: A::foo()\n");}
};
void fooB()
{
A a;
a.foo();
}
$ cat main.cpp
void fooA();
void fooB();
int main()
{
fooA();
fooB();
return 0;
}
$ g++ main.cpp a.cpp b.cpp
$ ./a.out
a.cpp: A::foo()
a.cpp: A::foo()
Вы ошибаетесь.