>  기사  >  백엔드 개발  >  C++ 친구 함수에 대한 자세한 설명: 다중 상속에서 친구 함수의 역할은 무엇입니까?

C++ 친구 함수에 대한 자세한 설명: 다중 상속에서 친구 함수의 역할은 무엇입니까?

WBOY
WBOY원래의
2024-04-29 18:39:01852검색

Friend 함수를 사용하면 비멤버 함수가 비공개 멤버에 액세스하고 다중 상속에서 역할을 수행할 수 있으므로 파생 클래스 함수가 ​​기본 클래스의 비공개 멤버에 액세스할 수 있습니다.

C++ 友元函数详解:友元函数在多继承中的作用?

C++ 친구 함수에 대한 자세한 설명: 다중 상속에서 친구 함수의 역할

친구 함수 소개

친구 함수는 비공개 멤버에 대한 액세스 권한이 부여되는 특수 함수이며, 아니요 이 클래스의 객체가 필요합니다. 비회원 함수가 개인 데이터에 액세스할 수 있도록 허용하는 데 자주 사용됩니다.

구문:

class ClassName {
    ... // 类成员
    friend FunctionName;
};

다중 상속에서 친구 함수의 역할

다중 상속에서 파생 클래스는 여러 기본 클래스의 데이터 멤버와 메서드를 상속할 수 있습니다. 파생 클래스의 함수가 기본 클래스의 전용 멤버에 액세스해야 하는 경우 해당 함수를 친구 함수로 선언할 수 있습니다.

실용 사례

Base 클래스와 Base에서 상속되는 파생 클래스 Derived가 있다고 가정합니다. Base 类和一个从 Base 继承的派生类 Derived

class Base {
private:
    int data;
};

class Derived : public Base {
public:
    void printData() {
        std::cout << data << std::endl;
    }
    friend void printData2(Derived& obj);
};

由于 dataBase 的私有成员,Derived 中的 printData() 函数无法直接访问它。因此,我们将 printData2() 函数声明为 Derived 的友元函数:

void printData2(Derived& obj) {
    std::cout << obj.data << std::endl;
}

现在,printData2() 可以访问 Derived 中私有的 data

int main() {
    Derived obj;
    obj.printData();
    printData2(obj);
}

Due to data는 Base의 전용 멤버이며 DerivedprintData() 함수로 직접 액세스할 수 없습니다. 따라서 printData2() 함수를 Derived의 친구 함수로 선언합니다.

0
0
이제 printData2()에 액세스할 수 있습니다. 파생의 비공개 데이터 멤버입니다.

사용법:

🎜rrreee🎜출력: 🎜rrreee

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

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