例如,如果我有:
#include <iostream>
using namespace std;
int main()
{
int b = 1;
int c = 2;
string a = "(b + c)";
cout << (4 * a) << "\n";
return 0;
}
是否可以像代码所说的那样将字符串按字面意思a
解释?cout << (4 * (b + c)) << "\n";
不,C++ 不是(设计为)解释型语言。
尽管理论上可以覆盖不同类型的运算符,但非常不建议覆盖不涉及您自己类型的运算符。从标准库定义运算符重载std::string
可能会在将来中断。这只是个坏主意。
但是,假设您使用了自定义类型。您可以编写一个程序,将文本字符串解释为算术表达式。这种程序的核心是解析器。这当然是可能的,但是标准库没有为您提供这样的解析器。
此外,这样的解析器将无法在文本中的“b”和变量之间建立联系b
。在程序运行时,它不知道用于编译程序的变量名。您必须使用某种形式的数据结构来指定此类信息。
PS您忘记包含定义的标题std::string
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句