这似乎相当繁琐,但要求如下。 我从一个应用程序获取输入,这是一个字符串,是我需要类型转换为我的指针类型的数据类型。
但是,类型转换仅支持物理外观而不支持ex
的字符串类型 string a = "char";
char b;
int c = 82;
b= (a)c;
这里我需要将int c的类型转换为char c并放入char b。 我需要在循环中执行,因此宏不会用作其预处理器
答案 0 :(得分:2)
假设您必须将某些输入'c'转换为某种类型'b',我可以看到这样做的唯一方法是测试用户输入并构建所有支持的强制转换。有点像这样。
string a;
cin >> a;
a.to_lower();
for(int i = 0; i < a.size(); i++)
a[i] = tolower(a[i]);
if(a.compare("char"))
{
c = static_cast<char>(b);
}
else if(a.compare("int"))
{
c = static_cast<int>(b);
}
else if(...)
{
//other supported type cast.
}
这是我可以通过使用基类型来实现这一点的唯一方法。
另一种解决方案是不使用输入'c'的基类型,而是使用某种形式的抽象,如类来处理转换并返回转换后的值,而不是一起使用类型转换。