gpt4 book ai didi

c++ - 前向声明和友元函数

转载 作者:行者123 更新时间:2023-11-28 00:23:16 26 4
gpt4 key购买 nike

我有以下代码

class foo
{
public:
foo() {}
private:
int foo_int;
friend class bar; //----->Statement A
};

class bar
{
public:
void someMethod()
{
foo f;
f.foo_int = 13;
}
};

现在我也读了this回答所以。但是我不能把拼图拼凑在一起为什么编译器将 bar 识别为一种类型。我的印象是它会提示 Bar 是一个不完整的类型,但那并没有发生。我的问题是为什么?

最佳答案

friend class bar;

只是一个声明……编译器没有什么可提示的。不完整类型的限制是当编译器需要有关它没有的类型的信息时,例如它的大小,或者对于基类,它的成员,但对于 friend 它不需要任何东西除了它的名字。

请注意,friend 声明在类定义中出现的位置并不重要……它遵循 private: 不会使其成为私有(private)的。最好将它放在类定义的顶部。

关于c++ - 前向声明和友元函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394892/

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