gpt4 book ai didi

c++ - 函数调用的括号

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:50 25 4
gpt4 key购买 nike

在下面的代码片段中,如果我排除了对 std::istreambuf_iterator 的第二次调用周围的括号,我会在最后一行收到编译错误:

left of .c_str() must have a class/struct/union.

std::ifstream file("file.txt");;

std::string prog(
std::istreambuf_iterator<char>(file),
(std::istreambuf_iterator<char>()));
prog.c_str();

这些括号实际上是做什么的?在我看来,他们应该能够被排除在外。

最佳答案

如果没有括号,这将是 most vexing parse 的情况.它不会声明一个变量,而是一个返回 std::string 的函数,称为 prog 并将这两种类型作为参数。如果您之后尝试调用它,您将收到链接器错误。

关于c++ - 函数调用的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com