>  기사  >  백엔드 개발  >  C++ 함수의 프렌드 메커니즘에 대한 자세한 설명

C++ 함수의 프렌드 메커니즘에 대한 자세한 설명

WBOY
WBOY원래의
2024-04-18 11:15:021109검색

C++ 프렌드 메커니즘을 사용하면 비멤버 함수나 클래스가 다른 클래스의 프라이빗 또는 보호된 멤버에 액세스하여 다음 목적을 달성할 수 있습니다. 비멤버 함수가 프라이빗 멤버에 액세스하도록 허용합니다. 멤버 함수가 다른 클래스의 프라이빗 멤버에 액세스하도록 허용합니다. 클래스 멤버 함수 허용 다른 클래스의 프라이빗 멤버에 액세스하려면 프라이빗 멤버

C++ 函数的友元机制详解

C++ 함수의 친구 메커니즘에 대한 자세한 설명

친구 메커니즘은 함수나 클래스가 다른 클래스의 프라이빗 또는 보호된 멤버에 액세스할 수 있도록 허용하는 기능입니다. 기능. C++에서 친구 메커니즘은 다음 목적을 달성할 수 있습니다.

  • 비멤버 함수가 클래스의 전용 멤버에 액세스하도록 허용
  • 클래스의 멤버 함수가 다른 클래스의 프라이빗 멤버에 액세스하도록 허용

Syntax

  • 전역 함수 친구 선언:

    friend 返回值类型 函数名(参数列表);
  • 클래스 친구 선언:

    friend class 类名;
  • 클래스 멤버 함수 친구 선언:

    friend 返回值类型 类名::成员函数名(参数列表);

실제 사례:

질문: 디자인 one Point 类,它有私有成员 xy,并且有一个打印所有私有成员的 print() 函数。现在,我们想要一个额外的 printInfo() 函数,它可以访问 Point 클래스의 개인 멤버를 찾아서 인쇄하세요.

구현:

// Point 类
class Point {
private:
    int x;
    int y;

public:
    // 友元函数,可以访问 Point 类的私有成员
    friend void printInfo(Point& point);

    // Point 类的成员函数
    void print() {
        std::cout << "x: " << x << ", y: " << y << std::endl;
    }
};

// 全局友元函数,可以访问 Point 类的私有成员
void printInfo(Point& point) {
    std::cout << "x: " << point.x << ", y: " << point.y << std::endl;
}

int main() {
    Point point{10, 20};
    point.print();  // 输出:x: 10, y: 20
    printInfo(point);  // 输出:x: 10, y: 20
    return 0;
}

위 내용은 C++ 함수의 프렌드 메커니즘에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.