>백엔드 개발 >C++ >C++ 친구 함수에 대한 자세한 설명: 친구 함수를 호출하는 방법은 무엇입니까?

C++ 친구 함수에 대한 자세한 설명: 친구 함수를 호출하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-04-28 21:57:02335검색

Friend 함수는 private 또는 protected 멤버에 대한 클래스 간 액세스를 허용합니다. 구문은 다음과 같습니다. class ClassName {protected: // Private 또는 protected 멤버}; 친구는 친구 함수를 선언합니다. 친구 함수를 호출하려면 도트 연산자와 클래스 인스턴스를 사용합니다: obj.value = 10; printValue(obj); 실제 경우에는 friend 함수를 사용하여 두 문자열의 길이를 비교하고 전용 멤버 length()에 액세스합니다.

C++ 友元函数详解:如何调用友元函数?

C++ 친구 함수에 대한 자세한 설명: 심층적인 이해 및 호출 방법

친구 함수는 다른 클래스의 비공개 및 보호 멤버에 액세스할 수 있는 C++의 특별한 유형의 함수입니다. 이는 클래스 전반에 걸쳐 데이터에 액세스해야 하거나 특수 기능을 구현해야 할 때 유용합니다.

친구 함수 구문

친구 함수 구문은 다음과 같습니다.

class ClassName {
protected:
  // 私有或受保护成员
};

friend 声明友元函数;

예:

class MyClass {
protected:
  int value;
};

friend void printValue(MyClass&); // 声明友元函数

친구 함수 호출

친구 함수를 호출하려면 도트 연산자(. ) 및 클래스 인스턴스: .)和类实例:

MyClass obj;
obj.value = 10; // 访问私有成员

printValue(obj); // 调用友元函数

实战案例

以下是一个使用友元函数的实战案例:

// 友元函数用于比较两个字符串的长度
bool compareStringLength(const string& s1, const string& s2) {
  return s1.length() > s2.length();
}

// 测试友元函数
int main() {
  string str1 = "Hello";
  string str2 = "World";

  // 使用友元函数比较字符串长度
  if (compareStringLength(str1, str2)) {
    cout << "str1 is longer than str2" << endl;
  } else {
    cout << "str2 is longer than str1" << endl;
  }

  return 0;
}

在这个例子中,compareStringLength 函数是一个友元函数,可以访问 string 类的私有成员 length()rrreee

실용 사례🎜🎜다음은 friend 함수를 사용한 실제 사례입니다. 🎜rrreee🎜이 예에서 compareStringLength 함수는 friend 함수이며 string 클래스의 전용 멤버 length(). 🎜

위 내용은 C++ 친구 함수에 대한 자세한 설명: 친구 함수를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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