char()和int()是c ++中的函数吗?

时间:2018-06-20 16:49:05

标签: c++

在谷歌搜索30分钟后,我决定在这里提问 如果我不能正确理解下面的代码行,则可能是无效的问题

result += char(int(text[i]+s-65)%26 +65);

在上面的代码中char()是一个函数吗?如果是,那么我无法找到有关它的任何信息,如果不是,这是什么? 对于内部int()也有同样的疑问。

以上代码是从C ++程序复制的。

1 个答案:

答案 0 :(得分:2)

它们不是功能。它们只是类型转换的替代语法。 char(x)static_cast<char>(x)差不多。

通常,在C ++中,人们应该偏向于C ++特定的构造来投射对象(static_castdynamic_castconst_castreinterpret_cast),以提供帮助。确保在投射对象时不要做任何愚蠢的事情。因此,在您的代码示例中,建议将其重写为

result += static_cast<char>(static_cast<int>(text[i]+s-65)%26 +65);

但从功能上讲,它们都是相同的。