Would this be fine as well?

Code:
#include <iostream>

using namespace std;


class A
{
    public:
        A() = default;
        ~A() = default;


        void AMethod(){cout << "This text is in class A" << endl;}
};


class B
{
    public:
        B() = default;
        ~B() = default;


        void BMethod(){cout << "This text is in class B" << endl;}
};


void BMethod(A& a)
{
    a.AMethod();
}


void AMethod(B& b)
{
    b.BMethod();
}


int main()
{
    A a;
    B b;


    a.AMethod();
    b.BMethod();
    return 0;
}