班级公共成员及其访问

Public member of class and its access

本文关键字:访问 成员      更新时间:2023-10-16

我们可以在函数中使用公共数据成员或成员函数,该功能在程序中声明但不是该类的成员?

如果所讨论的非会员函数具有一个可以调用成员函数的对象,那么是的 - 这就是与公共成员的想法。例如:

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;
}

这是通过使用朋友函数概念的。任何不是该类的成员函数的函数,我们都可以用朋友关键字将此函数声明为朋友函数。现在,通过使用此朋友功能,我们可以借助该类的对象访问所有私人,受保护的公共数据成员。

可以通过任何功能访问类的公共数据成员。

可以通过任何功能调用类的公共成员功能。

这是使课堂成员public的目的。

自然,还有其他条件(例如,调用非静态公共成员函数的函数通常需要访问类的实例,即对象)。这种情况(如果不满足)通常会防止代码编译或导致不确定的行为 - 但这与成员是否为public的问题无关。