Is there C/C++ equivalent of eval(“function(arg1, arg2)”)?

后端 未结 5 437
一个人的身影
一个人的身影 2020-11-30 07:41

it need a way to call function whose name is stored in a string similar to eval. Can you help?

5条回答
  •  天涯浪人
    2020-11-30 08:23

    #include 
    #include 
    #include 
    using namespace std;
    
    
    double eval( string expression );
    
    
    int main( int argc, char *argv[] )
    {
        string expression = "";
        for ( int i = 1; i < argc; i++ )
        {
           expression = expression + argv[i];
        }
        cout << "Expression [ " << expression << " ] = " << endl;
    
        eval( expression );
    }
    
    
    double eval( string expression )
    {
        string program = "";
        program = program + "#include \n";
        program = program + "#include \n";
        program = program + "using namespace std;\n";
        program = program + "int main()\n";
        program = program + "{\n";
        program = program + "   cout << ";
        program = program + expression;
        program = program + " << endl;\n";
        program = program + "}";
    
    
        ofstream out( "abc.cpp" );
        out << program;
        out.close();
    
        system( "g++ -o abc.exe abc.cpp" );
        system( "abc" );
    }
    

提交回复
热议问题