Я хочу реализовать функцию, которая может распечатать значение одной переменной-члена (например, 'aa') структуры ('Data') по ее имени. Я пытаюсь использовать определение макроса следующим образом, но не удалось. Есть ли простой способ его реализовать?Есть ли простой способ реализовать его на C++?
#include <string>
#include <iostream>
using namespace std;
struct Data
{
int aa;
int bb;
int cc;
Data(): aa(1),bb(2),cc(3) {};
};
#define Param(a,b) a.##b
void Process(Data& data, const string& name)
{
cout << Param(data, name) << endl;
}
void main()
{
Data data;
Process(data, "aa");//I want print the value of Data.aa
Process(data, "bb");//I want print the value of Data.bb
Process(data, "cc");//I want print the value of Data.cc
}
Вы можете объявлять функции внутри структуры, как вы это делаете в классе –
Просто вызовите функцию процесса с параметром 'data.aa' – Prasanna
Фактическая ситуация более сложная, чем эта, не может быть вызвана напрямую. – Logic