即使将会员功能设为好友也无法访问会员
can't access member even after making a member function a friend
在下面的代码中,如果我使College
类成为University
类的朋友,那么我就可以访问University
类的私有属性。但是在College
类中,我只希望print函数访问那些私有属性。所以,我只是作为朋友制作了College
类的print
函数,但这似乎不起作用。我错过了什么或做错了什么?
错误:无法访问University
类的名称专用属性。
#include <iostream>
//class college;
class University{
//friend class college; // Works fine
friend void College::print(University &ob); // doesn't work
public:
University() = default;
University(int i, char *n) : buildings{ i }, name{ n } {}
private:
int buildings;
char *name;
};
class College{
public:
void print(University &ob){
std::cout << "I am a part of " << ob.name; // <-----------
}
};
int main()
{
University first{ 2000, "Mit" };
College c;
c.print(first);
return 0;
}
为了使用
friend void College::print(University &ob);
类College
的定义必须可见。
class University;
class College{
public:
void print(University &ob);
};
class University{
//friend class college; // Works fine
friend void College::print(University &ob);
public:
University() = default;
University(int i, char *n) : buildings{ i }, name{ n } {}
private:
int buildings;
char *name;
};
void Collelge::print(University &ob){
std::cout << "I am a part of " << ob.name; // <-----------
}
相关文章:
- 为什么我的好友类无法访问私人会员?
- 好友功能 - 成员无法访问
- 好友库函数可以访问子数据
- 无法从好友功能访问类的私有成员?"ostream"不是"std"的成员?
- 好友功能仍无法访问私人会员
- 处于默认参数位置的 Lambda 无法访问好友成员。这是编译器错误吗?
- 使用好友声明访问私有模板
- 我无法获得好友会员功能以实际访问私人会员
- 好友功能没有访问私人成员
- 嵌套类的类内好友是否可以访问外部类成员?
- Google Play Games C++API-无法通过程序访问好友
- 为什么我的好友功能无法访问私人会员?
- 好友功能无法访问私人数据成员
- 好友和静态成员函数具有什么样的成员访问权限
- 成员无法使用好友功能访问
- 即使将会员功能设为好友也无法访问会员
- 访问好友功能
- 如何正确访问好友功能
- 好友有权访问好友的成员,但似乎无法更新好友的成员
- 无法访问好友流中的私有成员