C ++ не имеет встроенных возможностей reflection для более динамических языков, поэтому вы не можете делать то, что вы хотели бы использовать в своих возможностях языка.
Однако, если все члены одного типа, вы можете сделать это с помощью карты указателей на членов и небольшой подготовки:
// typedef for the pointer-to-member
typedef int X::*ptr_attr;
// Declare the map of pointers to members
map<string,ptr_attr> mattr;
// Add pointers to individual members one by one:
mattr["xx"] = &X::xx;
mattr["yy"] = &X::yy;
// Now that you have an instance of x...
X x;
// you can access its members by pointers using the syntax below:
x.*mattr["xx"] = A["aa"];