C++ 中成员函数和友元函数的使用方式如下:
成员函数:
成员函数是定义在类的内部的函数,它可以直接访问类中的成员变量和其他成员函数。
成员函数可以在类的外部通过对象来调用,格式为:对象名.成员函数名()。
成员函数可以定义在类的声明中,也可以在类的定义外部进行定义。
成员函数可以被重载,即可以在同一个类中定义多个同名的成员函数,但它们的参数列表必须不同。
友元函数:
友元函数是在类的外部进行定义的函数,它可以访问类的私有成员。
友元函数的声明需要在类的声明中进行,可以在类的内部进行定义,也可以在类的外部进行定义。
友元函数的调用方式和普通函数一样,直接使用函数名进行调用。
友元函数不是类的成员函数,所以它没有this指针,不能直接访问类的成员变量和成员函数,需要通过对象来访问。
下面是一个示例代码,展示了成员函数和友元函数的使用:
#include <iostream>
using namespace std;
class MyClass {
private:
int privateVar;
public:
MyClass(int var) {
privateVar = var;
}
void memberFunc() {
cout << "This is a member function." << endl;
cout << "Private variable: " << privateVar << endl;
}
friend void friendFunc(MyClass obj); // 友元函数的声明
void setPrivateVar(int var) {
privateVar = var;
}
};
void friendFunc(MyClass obj) {
cout << "This is a friend function." << endl;
cout << "Private variable: " << obj.privateVar << endl;
obj.setPrivateVar(10);
cout << "Private variable after modification: " << obj.privateVar << endl;
}
int main() {
MyClass obj(5);
obj.memberFunc(); // 调用成员函数
friendFunc(obj); // 调用友元函数
obj.memberFunc(); // 成员函数中私有变量已被友元函数修改
return 0;
}
输出结果:
This is a member function.
Private variable: 5
This is a friend function.
Private variable: 5
Private variable after modification: 10
This is a member function.
Private variable: 10