>백엔드 개발 >C++ >C++ 정적 함수와 친구 함수의 차이점은 무엇입니까?

C++ 정적 함수와 친구 함수의 차이점은 무엇입니까?

WBOY
WBOY원래의
2024-04-17 08:42:01609검색

정적 함수는 정적 멤버에만 액세스하고 이 포인터를 받지 않는 클래스 메서드입니다. 친구 함수는 클래스에 속하지 않으며 모든 멤버에 액세스하고 이 포인터를 받을 수 있습니다.

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

C++의 정적 함수와 프렌드 함수의 차이점

정적 함수

  • 는 클래스에 속하지만 특정 개체에 속하지 않으며 클래스 메서드라고 부를 수도 있습니다.
  • static 키워드를 사용하여 선언했습니다.
  • 클래스의 정적 멤버만 액세스할 수 있습니다.
  • this 포인터를 받지 않습니다.

친구 기능

  • 은 어떤 클래스에도 속하지 않습니다.
  • friend 키워드 선언을 사용하세요.
  • 비공개 멤버를 포함하여 클래스의 모든 멤버에게 접근할 수 있습니다.
  • this 포인터를 받을 수 있습니다.

표 요약

Features 정적 함수 친구 함수
클래스 멤버십 Not
Access Class static 회원 클래스의 모든 회원
이 포인터는 수신되지 않습니다 수신할 수 있습니다
선언 방법 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;
}

Friend 함수 예: 비공개 멤버의 값 인쇄

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으로 문의하세요.