gpt4 book ai didi

c++ - 为什么可以将函数原型(prototype)放在函数内部?

转载 作者:行者123 更新时间:2023-11-30 04:16:36 24 4
gpt4 key购买 nike

有时我会写如下代码

struct Bob
{
Bob() {}
};

int main()
{
Bob b();
}

我想做的是使用 Bob 的默认构造函数创建一个对象 b。要修复它,我必须删除 b 之后的括号。事实证明,否则编译器将该行解释为函数原型(prototype)!

好的,我可以理解,遵守规则。但是为什么你可以把一个函数原型(prototype)放在一个函数里面呢?目的是什么?

最佳答案

大概是因为在 C 中,该语法没有其他可能的含义(没有成员函数或构造函数),所以他们将其指定为函数声明。

然后,当 C++ 继承了 C 的功能时,他们无法在不冒破坏现有代码的风险的情况下更改这种构造的含义。

如果您要问他们为什么完全允许局部函数声明,那可能是因为他们希望允许函数的作用域尽可能接近使用,或者它可能只是随时间流逝。

关于c++ - 为什么可以将函数原型(prototype)放在函数内部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660411/

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