在面向对象的编程中,类(Class)是创建对象(Object)的蓝图。类可以包含数据(称为成员变量或属性)和操作这些数据的函数(称为成员函数或方法)。以下是成员函数和非成员函数的定义和区别:
成员函数(Member Functions)
1. 定义:成员函数是定义在类内部的函数。它们可以直接访问类的所有成员变量,包括私有(private)和公有(public)成员。
2. 访问权限:
公有成员函数:可以在类的任何地方访问,也可以在类的对象之外访问。
私有成员函数:只能被类内部的其他成员函数访问,不能从类外部直接访问。
3. 作用:成员函数主要用于处理类的内部逻辑,如设置值、获取值、执行特定操作等。
非成员函数(Non-Member Functions)
1. 定义:非成员函数是指定义在类外部,但与类相关的函数。它们不能直接访问类的私有成员变量。
2. 访问权限:
非成员函数可以访问类的公有成员变量和公有成员函数。
若要访问私有成员,需要通过类的公有成员函数(如getter和setter方法)间接访问。
3. 作用:
非成员函数通常用于执行与类相关的操作,但不直接管理类的内部状态。
它们可以作为友元函数(Friend Functions)与类内部交互,从而访问私有成员。
举例
```cpp
class MyClass {
public:
int publicVar; // 公有成员变量
int privateVar; // 私有成员变量
// 成员函数
void setPublicVar(int value) {
publicVar = value;