首页  >  文章  >  后端开发  >  C++ 静态函数与友元函数有什么区别?

C++ 静态函数与友元函数有什么区别?

WBOY
WBOY原创
2024-04-17 08:42:01562浏览

静态函数是类方法,只访问静态成员而不接收 this 指针;友元函数不属于类,可以访问所有成员并接收 this 指针。

C++ 静态函数与友元函数有什么区别?

C 中静态函数与友元函数的区别

静态函数

  • 属于类但并不属于任何特定的对象,也可以称为类方法。
  • 使用 static 关键字声明。
  • 只可以访问类的静态成员。
  • 不会接收 this 指针。

友元函数

  • 不属于任何类。
  • 使用 friend 关键字声明。
  • 可以访问类的所有成员,包括私有成员。
  • 可以接收 this 指针。

表格总结

特征 静态函数 友元函数
类成员资格 不是
访问权限 类静态成员 类所有成员
this 指针 不接收 可以接收
声明方式 static 关键字 friend 关键字

实战案例

静态函数示例: 计算圆的面积

class Circle {
public:
    static double calculateArea(double radius) {
        return 3.14 * radius * radius;
    }
};

int main() {
    double radius = 5.0;
    double area = Circle::calculateArea(radius);
    cout << "圆的面积:" << area << endl;
    return 0;
}

友元函数示例: 打印私有成员的值

class Student {
private:
    int age;

public:
    friend void printAge(Student& student);
};

void printAge(Student& student) {
    cout << "年龄:" << student.age << endl;
}

int main() {
    Student student;
    student.age = 20;
    printAge(student);
    return 0;
}

以上是C++ 静态函数与友元函数有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn