C++에서 친구 함수는 클래스 외부에서 선언할 수 있지만 클래스 정의 바로 옆에 있어야 하고, 친구 키워드로 시작해야 하며, 클래스 범위에 의해 제한되지 않아야 합니다.
C++ 친구 함수를 클래스 외부에서 선언할 수 있나요?
머리말
Friend 함수는 클래스 외부 클래스의 비공개/보호 멤버에 액세스하는 특수 함수입니다. 클래스 정의 외부에서 선언됩니다. 이 기사에서는 C++의 friend 함수에 대한 클래스 외부 선언 규칙을 논의하고 설명할 실제 사례를 제공합니다.
외부 클래스 선언 규칙
C++에서는 friend 함수를 클래스 외부에서 선언할 수 있지만 다음 규칙에 주의해야 합니다.
friend
키워드로 시작하세요. friend
关键字开头。实战案例
下面是一个展示友元函数类外声明的实战案例:
// 类 Person 定义 class Person { private: std::string name_; // 私有成员变量 public: Person(const std::string& name) : name_(name) {} }; // 友元函数声明(在 Person 类外) friend std::ostream& operator<<(std::ostream& os, const Person& person); // 主函数 int main() { Person p("John Doe"); std::cout << p << std::endl; // 调用友元函数 } // 友元函数定义(在 Person 类外) std::ostream& operator<<(std::ostream& os, const Person& person) { os << person.name_; return os; }
代码解释
在这个例子中:
Person
类定义包含一个私有成员变量 name_
。operator<<
函数声明为 Person
类的友元函数,并置于类的定义之后。Person
对象并输出其 name_
值,这需要调用友元函数。name_
私有成员变量并输出它的值。结论
C++ 中的友元函数可以在类的外部声明,但必须紧邻类的定义并使用 friend
Person
클래스 정의에는 전용 멤버 변수 name_
이 포함되어 있습니다. 🎜operator<<
함수는 Person
클래스의 friend 함수로 선언되고 클래스 정의 뒤에 배치됩니다. 🎜메인 함수에서는 Person
객체가 생성되고 name_
값이 출력됩니다. 이를 위해서는 친구 함수 호출이 필요합니다. 🎜Friend 함수는 클래스 외부에서도 정의됩니다. name_
비공개 멤버 변수에 액세스하여 해당 값을 출력합니다. friend
키워드를 사용해야 합니다. friend 함수의 선언은 클래스 범위에 의해 제한되지 않으므로 클래스 외부의 전용 멤버에 액세스할 수 있는 유연성을 제공합니다. 명확성과 가독성을 위해 클래스 정의 근처에 친구 함수를 선언하는 것이 좋습니다. 🎜위 내용은 C++ 친구 함수를 클래스 외부에서 선언할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!