gpt4 book ai didi

c++ - "friend"关系可以在C++的类之间传递吗?

转载 作者:太空狗 更新时间:2023-10-29 20:30:17 24 4
gpt4 key购买 nike

假设类 A 是类 B 的 friend ,类 B 是类 C 的 friend ,是 A 是 C 的 friend 还是 C 是 A 的 friend ,或者两者都是,还是都不是?

最佳答案

不,C++ 中的友元是不可传递的。

来自 C++03 标准,11.4-8:

Friendship is neither inherited nor transitive. Example:

class A {
friend class B;
int a;
};

class B {
friend class C;
};

class C {
void f(A* p)
{
p->a++;
// error: C is not a friend of A
// despite being a friend of a friend
}
};

class D : public B {
void f(A* p)
{
p->a++;
// error: D is not a friend of A
// despite being derived from a friend
}
};

关于c++ - "friend"关系可以在C++的类之间传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462133/

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