RT,C++的,Qt中的。现在是让用户输入变量名称。客户在TextEdit控件中输入名称,和类型,生成相应名称的变量。例如,用户选择int类型,在TextEdit中输入了“abc”,后台就要定义变量int abc; 因为用户输入的是字符串,后台获得的也是字符串“abc”,如何转换成变量名?
举例:
//希望对你理解有用
声明 "我=1"
MessageBox 调用(我)
Sub 声明(字串)
Var1=Split(字串,"=")(0)
返回值 = Lib.算法.中文汉字转拼音(Var1)
Execute 返回值&"="&Split(字串,"=")(1)
End Sub
Function 调用(字串)
返回值 = Lib.算法.中文汉字转拼音(Var1)
调用=eval(返回值)
End Function
不可能转换成变量名的, c/c++程序编译完后就没有变量名这个概念了, 只有地址,
你的这个问题可以这样解决, 比如定义一个结构体, 结构体有三个成员
一个为string类型的变量 name(你所谓的变量名),
一个为enum或string 类型的变量 type(你所谓的变量类型)
一个为void*类型的变量 val(这个是变量的值)
struct xxx
{
std::string m_name;//变量名
std::string m_type;//类型
void* m_value;//值, 具体的值需要根据类型去申请空间
}
切记c / c++程序编译完后就没有变量的概念了, 只有内存地址, 编译的时候编译器会先记下变量名的地址,
然后在对这个变量名进行引用的任何地方都用这个地址进行替换, cpu只会对地址里的数据进行运算
刚才有点忘说了, 如果需要添加多个的话可以这样, std::vector 这样的话如果有多个就push_back进去就好了
宏定义就行,定义一个宏开关,配合typedef