请考虑以下示例:
struct MyStruct {
int a;
int b;
};
Run Code Online (Sandbox Code Playgroud)
我可以通过这样做使用宏来从结构的实例设置成员:
#define setVar(x,y) instance.x = y
Run Code Online (Sandbox Code Playgroud)
然后我可以说任何功能:
setVar(a, 4)
Run Code Online (Sandbox Code Playgroud)
如何将字符串作为字符串发送到宏?这也可能吗?
setVar("a", 4)
Run Code Online (Sandbox Code Playgroud)
编辑:有一堆预定义的结构,其成员都是double类型.我只知道传入的XML配置文件使用的是什么结构.解析后,我有一堆字符串,它们是需要设置的所有数据成员和值的列表.我需要使用此列表为结构中的每个成员设置值.
在python中,有一个名为getattr的函数,它看起来像这样:
class MyObject():
def __init__(self):
self.xyz = 4
obj = MyObject()
getattr(obj, 'xyz')
Run Code Online (Sandbox Code Playgroud)
对getattr的调用将返回4.
在C++(非Visual C++)中有类似的方法吗?
是否有任何具有此功能的库我可以使用字符串查找对象的成员变量?
我试图找到一种方法来查找我无法更改的C++类中的公共数据成员.所以我不能使用地图将字符串文字映射到值.也许像宏的'unstringify'?
有没有办法在Qt中使用.pro文件来调用另一个Makefile?例如,在makefile中,您可以使用:
make -f /other/path/Makefile
Run Code Online (Sandbox Code Playgroud)
有没有像Qt使用专业文件?