为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串转换为变量名称或变量类型

将字符串转换为变量名称或变量类型

C++
茅侃侃 2019-07-31 10:48:10
将字符串转换为变量名称或变量类型是否可以通过执行以下操作将字符串转换为变量(反之亦然):makeVariable("int", "count");要么string fruit;cin >> fruit;    // user inputs "apple"makeVariable(fruit, "a green round object");然后能够通过执行以下操作来访问它:cout << apple; //a green round object提前致谢!
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

不,这是不可能的。这种功能在Ruby和Python等脚本语言中很常见,但C ++的工作方式与那些不同。在C ++中,我们尝试在编译时尽可能多地完成程序的工作。有时候我们可以在运行时做事,即使这样,优秀的C ++程序员也会在编译时找到一种方法来完成工作。

如果您知道要创建变量,则立即创建它:

int count;

您可能不知道的是变量的值,因此您可以将其推迟到运行时:

std::cin >> count;

如果你知道你需要一组变量,但不知道究竟有多少变量会创建一个地图或一个矢量

std::vector<int> counts;

请记住,变量的名称只不过是名称 - 您可以在以后引用该变量。在C ++中,推迟在运行时分配变量名称是不可能 也没有用的。所有这一切都会使您的代码更复杂,程序更慢。


查看完整回答
反对 回复 2019-07-31
?
万千封印

TA贡献1891条经验 获得超3个赞

初学程序员就每种语言提出这个问题。有一组计算机语言,这个问题的答案是“是”。这些是动态的交互式语言,如BASIC,Lisp,Ruby,Python。但想一想:变量名只存在于代码中,以方便程序员。如果有人随后在新代码中键入变量的名称,则在程序运行时定义新变量才有意义。这对于交互式语言环境来说是正确的,对于像C ++或Java这样的编译语言则不然。在C ++中,当程序运行时,并且会创建虚构的新变量,没有人可以输入将使用该新变量的代码。

你真正想要的是能够在运行时将名称与对象相关联,这样代码 - 而不是人 - 可以使用该名称来查找对象。正如其他人已经指出的那样,mapC ++标准库的特性为您提供了这种能力。


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 1664 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信