с помощью string ,надо через cin написать название функций, чтобы оно заработало в созданной функцией Showinfo!! (не могу написать правильно код ))

#include <iostream>
#include <cstring>

using namespace std;


string DataFromBD()
{
    return "Data From BD";
}

string DataFromWEBSER()
{
    return "Data From WEBSER";
}

void ShowInfo(string str)
{
    cout << str << endl;
}

void main()
{
    string a;
    cin >> a;
    ShowInfo(a());// надо правильно написать здесь!
}

Ответы (1 шт):

Автор решения: AR Hovsepyan

Ваша строка не может указывать на функцию. Можно сделать например так:

std::unordered_map < string, string(*)()> call{
{"DataFromBD", DataFromBD},
{"DataFromWEBSER", DataFromWEBSER}
};
string a;
cin >> a;
ShowInfo(call[a]());

или

string(*F)() = DataFromBD;
string a;
cin >> a;
if (a == "DataFromWEBSER")
    F = DataFromWEBSER;
ShowInfo(F());

По разному, только нужно как нибудь указывать на функцию.

→ Ссылка