我们可以在程序中声明但不是该类成员的函数中使用公共数据成员或成员函数吗?
答案 0 :(得分:0)
如果有问题的非成员函数有一个可以调用成员函数的对象,那么是 - 这是与公共成员的想法。例如:
class X
{
public:
void f() { }
int n_;
};
int main()
{
X x; // an actual object/variable of type X
x.f(); // can access public members
x.n_ = 3;
}
答案 1 :(得分:0)
这可以通过使用朋友功能概念来实现。任何不是该类成员函数的函数然后我们可以用friend关键字作为友元函数声明这个函数。现在通过使用这个友元函数,我们可以借助该类的对象访问所有私有的,受保护的公共数据成员。
答案 2 :(得分:0)
任何函数都可以访问类的公共数据成员。
任何函数都可以调用类的公共成员函数。
这就是制作班级成员public
的目的。
自然地,存在其他条件(例如,调用非静态公共成员函数的函数通常需要访问类的实例,即对象)。如果不满足这些条件,通常会阻止代码编译或导致未定义的行为 - 但这与成员是否为public
的问题无关。