gpt4 book ai didi

c++ - 与前向声明的类声明友元是否合法?

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:43 26 4
gpt4 key购买 nike

我已经在 visual studio 2008 中成功构建了类似于以下代码的东西:

class OpDevconfigSession;
class DevconfigSession
{
...
private
friend class OpDevconfigSession;
};

同样,这与 visual studio 配合得很好。但是,如果我尝试在 g++ 版本 4.3.2 下编译代码,我会收到如下错误消息:

error: friend declaration does not name a class or function

我知道标准一致性不是 Microsoft 的强项,所以我想知道我编写的代码是否以某种我尚不理解的方式违反了标准。有没有人有什么想法?

谢谢

最佳答案

您的代码片段在 private 之后缺少一个冒号。修复后,它在 g++ 中为我工作™ (http://codepad.org/XJuyEq9z)。

它也是标准的——您甚至不需要单独的前向声明。请参阅标准 11.4 中的示例:

class X {
enum { a=100 };
friend class Y;
};

class Y {
int v[X::a]; // OK, Y is a friend of X
};

关于c++ - 与前向声明的类声明友元是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781653/

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