班级公共成员及其访问
Public member of class and its access
我们可以在函数中使用公共数据成员或成员函数,该功能在程序中声明但不是该类的成员?
如果所讨论的非会员函数具有一个可以调用成员函数的对象,那么是的 - 这就是与公共成员的想法。例如:
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
的问题无关。
相关文章:
- C++ 传递指向对象的指针的指针,无法访问成员
- 从不同C++类的成员变量访问成员函数
- 使用 getter 访问成员变量C++
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 通过多个类访问成员时出错
- 如何在使用对象指针时访问成员函数
- 为什么相应成员不能正确访问成员函数指针
- 从两个不同类继承的非虚拟基类的访问成员
- 如何使用 gcc 内联汇编器代码访问成员变量
- 如何使用常数向量访问成员函数
- 访问成员函数中参数的类成员
- C++嵌套结构初始化和访问成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 如何使用C STD :: SET中的迭代器访问成员功能
- 访问成员C 时,结构的向量生成了范围的错误
- 带指针的班级访问成员
- 从聚合类访问成员变量
- 如何访问成员变量 sqlite 回调
- ctypes/C++segfault访问成员变量
- 通过父类型的指针或直接从派生类访问成员函数的差异