> 백엔드 개발 > C++ > C++ 친구 함수의 선언 규칙은 무엇입니까?

C++ 친구 함수의 선언 규칙은 무엇입니까?

WBOY
풀어 주다: 2024-04-16 08:57:02
원래의
976명이 탐색했습니다.

friend 함수 선언 규칙은 다음과 같습니다. 선언은 클래스 외부에 있어야 합니다. 멤버 함수 또는 전역 함수로 선언할 수 있습니다. 클래스의 객체는 포인터나 참조를 통해 전달될 수 있습니다.

C++ 友元函数的声明规则有哪些?

C++ Friend 함수 선언 규칙

Friend 함수 선언

friend 함수는 클래스의 비공개 멤버에 액세스할 수 있는 특수 함수입니다. C++에서 친구 함수를 선언하려면 다음과 같이 friend 키워드를 사용하세요. friend 关键字,如下所示:

// 声明 MyClass 类的友元函数 printInfo()
friend void printInfo(const MyClass& obj);
로그인 후 복사

声明规则

以下是在 C++ 中声明友元函数的规则:

  • 友元函数的声明必须位于类的外部。
  • 友元函数可以声明为成员函数(带作用域解析符)或全局函数(不带作用域解析符)。
  • 可以通过指针或引用来传递类的对象。

实战案例

考虑以下 MyClass 类,它有私有成员变量 _data

class MyClass {
private:
    int _data;
public:
    // ...
};
로그인 후 복사

我们可以定义一个友元函数 printInfo() 来访问 _data

// 声明 printInfo() 为 MyClass 的友元函数
friend void printInfo(const MyClass& obj) {
    std::cout << "Data: " << obj._data << std::endl;
}
로그인 후 복사

在主函数中,我们可以实例化 MyClass

int main() {
    MyClass obj;
    obj._data = 42;  // 访问私有成员(仅在友元函数中允许)
    printInfo(obj);  // 调用友元函数
    return 0;
}
로그인 후 복사

선언 규칙

다음은 C++에서 친구 함수를 선언하는 규칙입니다.🎜
  • 친구 함수의 선언은 클래스 외부에 있어야 합니다.
  • Friend 함수는 멤버 함수(범위 확인자 포함) 또는 전역 함수(범위 확인자 없음)로 선언될 수 있습니다.
  • 클래스의 객체는 포인터나 참조를 통해 전달될 수 있습니다.
🎜🎜실제 사례🎜🎜🎜개인 멤버 변수 _data가 있는 다음 MyClass 클래스를 고려해보세요. 🎜
Data: 42
로그인 후 복사
🎜우리는 _data에 액세스하는 친구 함수 printInfo(): 🎜rrreee🎜주 함수에서 MyClass 개체를 인스턴스화하고 친구 함수를 호출하여 인쇄 개인 데이터: 🎜rrreee🎜🎜출력: 🎜🎜rrreee

위 내용은 C++ 친구 함수의 선언 규칙은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿