gpt4 book ai didi

C++:将引用作为参数传递,但该函数不接受引用作为参数

转载 作者:行者123 更新时间:2023-11-27 22:44:40 25 4
gpt4 key购买 nike

我有来自 here 的代码片段.请查看文件 spec.cc

Eval parse_recursive_descent (Grammar g, SymbolString input) {
return
parse_recursive_descent
(g, Stack (SymbolString {g.start}, input, Path ())) ;
}

// MAIN ////////////////////////////////////////////////////////////////////////

int main () {
Input in = read_input (std::cin) ;
Eval ev = parse_recursive_descent (grammar (in), string (in)) ;
print (make_output_string (derivations (ev), accept (ev))) ;
return 0 ;
}

函数grammar的原型(prototype)是:Grammar& grammar (Input& in);。所以它返回一个引用。

但是 parse_recursive_descent 没有作为引用的 g 参数。问题是:parse_recursive_descent函数中的g是引用还是值?

最佳答案

这是一个值,根据您作为参数传递的引用复制构造。

一般的想法是函数的所有参数都是函数的局部变量(指定类型)。当你传递一个参数时,它被用作构造相应参数的初始化器。

关于C++:将引用作为参数传递,但该函数不接受引用作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44653168/

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