gpt4 book ai didi

c++ - C++ 中函数的关键字?

转载 作者:行者123 更新时间:2023-12-01 18:52:00 24 4
gpt4 key购买 nike

为什么 C++ 没有关键字来定义/声明函数?基本上,该语言中的所有其他设计抽象都有一个(structclassconceptmodule,... )。

这难道不会成为语言 easier to parse ,以及更加一致?大多数“现代”语言似乎都走了这条路(Rust 中的 fn,kotlin 中的 fun,...)。

最佳答案

C++ 的语法主要来自 C,并且 C 不提供 function 关键字。相反,它使用某种语法来指示大多数功能:

[return type] [function name]([paramters]) { } 

因此,如果引入 function 关键字,我们可以获得更快的解析速度并提高可读性。但是,您现在有两种不同的方式来声明某些内容,并且您可以'由于向后兼容的必要性,不要摆脱旧的方式。

<小时/>

但是让我们假设我们忽略了向后兼容性论证并假设它被引入:

function int square(int a) { //1
return a * a;
}

//-----------------------------

function square(int a) { //2
return a * a;
}

case 1 的行为就像一个关键字指示器,它有优点(可读性、解析)和缺点(用不必要的噪音垃圾邮件函数声明)

case 2 是一种 javascript 风格的方法,让编译器计算出返回类型(如此处的 auto)。它可能是最美观的方法,但 C++ 是非常静态类型的,这会在不需要时增加一层困惑(auto-ness 可能很有用,但肯定并不总是需要的)。

<小时/>

因此,最终这些中等 yield 似乎并不能证明引入此类关键字所带来的成本是合理的。

<小时/>

额外的一点:

自 C++11 起,语言功能将允许您争论特定的方法:

function square(int a) -> int { 
return a * a;
}

这肯定是一个非常可靠的解决方案!但关于 function 关键字的讨论似乎早已平息。当在最新的 C++ 版本创新时还有许多其他可能更重要的优先事项需要讨论时,这是可以理解的。

关于c++ - C++ 中函数的关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000446/

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