gpt4 book ai didi

c++类函数 friend 到另一个类

转载 作者:行者123 更新时间:2023-11-30 02:30:31 26 4
gpt4 key购买 nike

我试图将一个类成员函数指定为另一个类的友元,但它只允许我访问公共(public)成员,而不是 protected 或私有(private)成员。它与免费功能配合得很好。

Visual Studio 错误:

member "Class1::protected_int" (declared at line 9) is inaccessible
member "Class1::private_int" (declared at line 11) is inaccessible
class Class2;

class Class1 {
friend void Class2::TEST(const Class1& ex);
friend void TEST(const Class1& ex);

public:
int public_int;
protected:
int protected_int;
private:
int private_int;
};

class Class2{
public:
void TEST(const Class1& ex);
};

void Class2::TEST(const Class1& ex){
int pub = ex.public_int;
int pro = ex.protected_int;
int pri = ex.private_int;
}

void TEST(const Class1& ex){
int pub = ex.public_int;
int pro = ex.protected_int;
int pri = ex.private_int;
}

Image

最佳答案

这里的程序已经是病式了:

friend void Class2::TEST(const Class1& ex);

Class2 不完整,因此您还不能访问它的成员。如果您重新排序您的代码,以便在需要时完成所有内容:

class Class1;

class Class2{
public:
void TEST(const Class1& ex);
};

class Class1{
friend void Class2::TEST(const Class1& ex);
friend void TEST(const Class1& ex);

// ...
};

然后一切编译正常。

关于c++类函数 friend 到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38530907/

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