やっぱこっちのがいいや。

class& CreateClass(string classname, vector<string> method);

string c = "hoge";
vector<pair<string, string>> m;
m.push_back(make_pair("print(string s)", "cout << s << endl"));
class T = CreateClass(c, m);
T *abc = new T();
abc->print("逝ってよし");