Search code examples
c++mutual-recursion

How to have two functions that call each other C++


I have 2 functions like this that does obfuscation on if loop:

void funcA(string str)
{
    size_t f = str.find("if");
    if(f!=string::npos)
    {
        funcB(str);        //obfuscate if-loop
    }
}

void funcB(string str)
{
     //obfuscate if loop
     funcA(body_of_if_loop);     //to check if there is a nested if-loop
}

The problem with this would be that funcA would not be able to see funcB and vice versa if I put funcB before funcA.

Would appreciate any help or advice here.


Solution

  • What you want is forward declaration. In your case:

    void funcB(string str);
    
    void funcA(string str)
    {
        size_t f = str.find("if");
        if(f!=string::npos)
        {
            funcB(str);        //obfuscate if-loop
        }
    }
    
    void funcB(string str)
    {
         //obfuscate if loop
         funcA(body_of_if_loop);     //to check if there is a nested if-loop
    }