在main
中,我想访问display
功能。在class B
中,我宣称class A
为朋友。所以我认为可以访问私有成员函数。
但我不知道该怎么做。
#include<stdio.h>
class A
{
public:
class B
{
public:
friend class A;
private:
void display()
{
printf("\nHi");
}
};
};
int main()
{
//here i wanna access display function.. is it possible?
return 1;
}
答案 0 :(得分:2)
friend
指定可以访问私有成员的内容。在您的情况下,您想要访问main
函数中的私人成员,因此您应该指定它的朋友:
class A
{
public:
class B
{
friend int main();
void display()
{
printf("\nHi");
}
};
};
int main()
{
// here you can access display function:
A::B object;
object.display();
}
或者,如果您想让class A
(而不是其他任何东西)成为朋友,那么class A
应该访问display
功能。 class A
的任何成员都可以这样做:
class A
{
public:
class B
{
friend class A;
void display()
{
printf("\nHi");
}
};
// here you can access display function:
void access_display(B object)
{
object.display();
}
};
int main()
{
A object1;
A::B object2;
object1.access_display(object2);
}