gpt4 book ai didi

c++ - C++ 中的函数 : define it before use it

转载 作者:太空狗 更新时间:2023-10-29 19:46:36 24 4
gpt4 key购买 nike

在C/C++中,当且仅当被调用函数对调用者可见时,调用函数才能调用被调用函数,这意味着被调用函数的定义应该在使用它的地方之前完成,否则使用前向声明。

这是我的问题,

class A
{
public:
void foo()
{
bar();
}

void bar()
{
//...
}
};

int main()
{
A a;
a.foo();
}

上面的代码可以正常工作。但是 foo 调用了 bar 而我没有将 bar 的定义放在 foo 或前向声明 之前>barfoo 中对bar 的调用如何工作?编译器如何找到 bar

最佳答案

该语言说成员函数声明的范围是整个类(松散地),所以这很好。

实际发生的是,编译器在尝试分析内联函数的主体之前一直等到类定义结束(实际上,最外层封闭类定义结束)。

因此它只查看类末尾对 bar 的调用,到那时它已经看到它的声明并且一切正常。

关于c++ - C++ 中的函数 : define it before use it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543364/

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