친구 기능으로 서로 전화를 걸 수 있습니다. 프렌드 함수는 클래스의 프라이빗 멤버 변수와 프라이빗 메서드에 액세스할 수 있는 특수 함수로, 서로의 프라이빗 데이터에 액세스할 수 있는 밀접하게 관련된 함수 그룹을 생성할 수 있습니다. 친구 함수는 일반 함수처럼 서로를 호출할 수 있습니다.
친구 기능이 서로 호출할 수 있나요?
Friend 함수는 클래스의 전용 멤버 변수와 전용 메서드에 액세스할 수 있는 C++의 특수 함수입니다. Friends라는 단어는 이름에서 알 수 있듯이 친근한 관계를 의미합니다. 그렇다면 친구 함수가 서로 호출할 수 있나요?
답은 '예'입니다.
친구 기능은 서로를 호출할 수 있다는 점이 친구 기능의 장점 중 하나입니다. 이를 통해 서로의 개인 데이터에 액세스할 수 있는 밀접하게 관련된 일련의 기능을 만들 수 있습니다.
Syntax
다른 친구 함수를 호출하기 위해 친구 함수를 선언하는 구문은 일반 함수 호출과 유사합니다. 예:
class MyClass { friend void func1(); friend void func2(); }; void func1() { func2(); // 调用友元函数 func2 }
실용 사례
다음은 친구 함수를 사용하여 서로 호출하는 간단한 예입니다.
#include <iostream> class ComplexNumber { private: double real, imag; public: ComplexNumber(double r, double i) : real(r), imag(i) {} // 以下声明为友元函数 friend std::ostream& operator<<(std::ostream&, const ComplexNumber&); friend bool operator==(const ComplexNumber&, const ComplexNumber&); }; // 友元函数重载运算符 << std::ostream& operator<<(std::ostream& os, const ComplexNumber& z) { os << z.real << " + " << z.imag << "i"; return os; } // 友元函数重载运算符 == bool operator==(const ComplexNumber& z1, const ComplexNumber& z2) { // 友元函数可以访问私有成员变量 real、imag return z1.real == z2.real && z1.imag == z2.imag; } int main() { ComplexNumber z1(1.2, 3.4), z2(1.2, 3.4); std::cout << z1 << " == " << z2 << " : " << std::boolalpha << (z1 == z2) << std::endl; return 0; }
Output
1.2 + 3.4i == 1.2 + 3.4i : true
이 예에서는 친구 함수 operator 和 <code>operator==
可以相互调用,以重载运算符 和 <code>==
입니다.
위 내용은 친구 함수가 다른 친구 함수를 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!