gpt4 book ai didi

c++ - 为什么我需要将这个友元函数的定义包含在命名空间中?

转载 作者:行者123 更新时间:2023-11-30 03:34:07 24 4
gpt4 key购买 nike

<分区>

在头文件中给定一个命名空间 N,其中包含一个类 C 和一个友元函数 f:

namespace N
{
class C
{
friend void f();
}
}

如果我像这样在 cpp 文件中定义友元函数 f:

void N::f()
{
...
}

它不编译。如果我这样定义它:

namespace N
{
void f()
{
...
}
}

编译。为什么?

我使用的是 gcc 4.4,但我在为 C++14 编译的 Coliru 中尝试了一个类似的示例并得到了相同的行为

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