温馨提示×

C++中成员函数和友元函数如何使用

c++
小亿
145
2023-08-01 12:30:18
栏目: 编程语言

C++ 中成员函数和友元函数的使用方式如下:

成员函数:

  1. 成员函数是定义在类的内部的函数,它可以直接访问类中的成员变量和其他成员函数。

  2. 成员函数可以在类的外部通过对象来调用,格式为:对象名.成员函数名()。

  3. 成员函数可以定义在类的声明中,也可以在类的定义外部进行定义。

  4. 成员函数可以被重载,即可以在同一个类中定义多个同名的成员函数,但它们的参数列表必须不同。

友元函数:

  1. 友元函数是在类的外部进行定义的函数,它可以访问类的私有成员。

  2. 友元函数的声明需要在类的声明中进行,可以在类的内部进行定义,也可以在类的外部进行定义。

  3. 友元函数的调用方式和普通函数一样,直接使用函数名进行调用。

  4. 友元函数不是类的成员函数,所以它没有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 

0