gpt4 book ai didi

c++ - 交 friend ?

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

我不知道在互联网上搜索此类 friend 的正确关键字,仅靠关键字 friend 不会带来预期的结果。

class Integer
{
friend int;
};

friend int 是什么意思?

最佳答案

它是无效的 C++,它应该被你的编译器拒绝。 g++ 给出了两个错误“错误:声明 friend 时必须使用类键”和“错误:无效类型‘int’声明‘ friend ’”。

只有当被“加好友”的东西是函数或类名时才有意义。在这种情况下,命名函数或命名类的所有成员函数都可以像访问公共(public)成员一样访问类的私有(private)成员和 protected 成员。

例如:

class MyClass
{
public:
int x;
protected:
int y;
private:
int z;

friend void SomeFunction(const MyClass& a); // Friend function
friend class OtherClass; // Friend class
};

void SomeFunction(const MyClass& a)
{
std::cout << a.x << a.y << a.z; // all ok
}

void AnotherFunction(const MyClass& a)
{
std::cout << a.x << a.y << a.z; // ERROR: 'y' and 'z' are not accessible
}

class OtherClass
{
void ClassMethod(const MyClass& a)
{
std::cout << a.x << a.y << a.z; // all ok
}
};

class ThirdClass
{
void ClassMethod(const MyClass& a)
{
std::cout << a.x << a.y << a.z; // ERROR: 'y' and 'z' not accessible
}
};

关于c++ - 交 friend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129172/

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