Friend 함수를 사용하면 클래스 정의에서 friend 키워드를 사용하여 선언하여 외부 함수가 클래스의 비공개 또는 보호 멤버에 액세스할 수 있습니다. 멤버 함수와 달리 친구 함수는 클래스 외부에 선언되어 클래스의 비공개 및 보호 멤버에 액세스할 수 있는 반면, 멤버 함수는 클래스 내부에 선언되어 클래스의 모든 멤버에 액세스할 수 있습니다. 프렌드 함수는 일반 함수 호출로 사용되는 반면, 멤버 함수는 클래스 개체로 호출됩니다. 프렌드 함수는 프라이빗 또는 보호 멤버에 대한 외부 액세스가 필요할 때 사용되며, 멤버 함수는 클래스 내부에서 멤버 함수를 사용할 때 사용됩니다.
C++ 친구 함수에 대한 자세한 설명: 친구 함수와 멤버 함수의 차이점
친구 함수
친구 함수는 외부 함수가 클래스의 비공개 멤버와 보호 멤버에 액세스할 수 있게 해주는 특별한 함수입니다. . 클래스 정의에서 friend
키워드를 사용하여 선언됩니다. friend
关键字声明。
语法:
class MyClass { friend void myFriendFunction(); ... };
成员函数
成员函数是属于类的函数,可以访问其私有和保护成员。
语法:
class MyClass { void myMemberFunction(); ... };
友元函数和成员函数的区别
特征 | 友元函数 | 成员函数 |
---|---|---|
可访问性 | 可以访问类的私有和保护成员 | 可以访问类的所有成员 |
声明位置 | 在类外部 | 在类内部 |
作用域 | 全局 | 类内部 |
调用方式 | 像普通函数一样调用 | 使用类对象调用 |
实战案例
考虑一个 Student
类,它具有私有的 marks
成员:
class Student { private: int marks; ... };
我们可以使用友元函数 calculateAverage()
来计算学生的平均成绩,该函数可以访问 marks
:
// 友元函数 friend double calculateAverage(Student& student); // 计算学生的平均成绩 double calculateAverage(Student& student) { return student.marks / 3; }
我们也可以使用成员函数来计算平均成绩,但它只能在 Student
// 类的成员函数 double getAverage() { return marks / 3; }Member Functions Member 함수는 클래스에 속하고 해당 클래스의 private 및 protected 멤버에 액세스할 수 있는 함수입니다. 🎜🎜문법: 🎜rrreee🎜🎜친구 기능과 멤버 기능의 차이점🎜🎜
기능 | 친구 기능 | 멤버 기능 |
---|---|---|
접근성 | 클래스의 비공개 및 보호 멤버에 액세스할 수 있습니다. | 클래스에 액세스할 수 있습니다. 모든 멤버에 접근함 |
선언 위치 | 클래스 외부 | 클래스 내부 |
전역 | 내부 클래스 | |
호출 방법 | 일반 함수처럼 호출 | 클래스 객체 호출 사용 |
calculateAverage()
를 사용하여 marks
에 액세스할 수 있는 학생의 평균 성적을 계산할 수 있습니다. 🎜rrreee 🎜 평균 성적을 계산하기 위해 멤버 함수를 사용할 수도 있지만 Student
클래스에서만 사용할 수 있습니다. 🎜rrreee🎜🎜Conclusion🎜🎜🎜Friend 함수는 외부 함수의 액세스를 허용하는 메커니즘을 제공합니다. 클래스의 멤버를 외부 세계에 표시하지 않고 보호했습니다. 멤버 함수는 클래스의 모든 멤버에 액세스할 수 있지만 클래스 내에서만 사용할 수 있습니다. 🎜위 내용은 C++ 친구 함수에 대한 자세한 설명: 친구 함수와 멤버 함수의 차이점은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!