Friend Function 시연

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 프로그래밍 언어에서 Friend Function의 개념을 시연하는 방법을 배웁니다. private 멤버 변수를 가진 Volume 클래스를 생성하고, 클래스 외부에서 이러한 private 변수에 접근하기 위해 Friend Function을 사용합니다.

Volume 클래스 생성

먼저, ~/project 디렉토리에 main.cpp라는 이름의 새로운 C++ 파일을 생성하고, 다음 코드를 추가하여 Volume 클래스를 정의합니다.

#include <iostream>

using namespace std;

//CPP 에서 Friend Function 의 개념을 시연하기 위한 Volume 클래스
class Volume {
    //멤버 변수는 private 으로 선언되어 클래스 외부에서 직접 접근할 수 없습니다.
    private:
        int liter;

    //기본 생성자를 사용하여 변수 liter 의 값을 2 로 초기화합니다.
    public:
        Volume(): liter(2) {}
};

private 멤버 변수 liter를 가진 Volume 클래스를 정의했습니다. 이 변수는 클래스 외부에서 직접 접근할 수 없습니다.

Volume 클래스를 위한 Friend Function 선언

이제 Volume 클래스에 대한 Friend Function을 선언하여 클래스 외부에서 이 클래스의 private 변수에 접근할 수 있도록 합니다.

//Volume 클래스에 대한 Friend Function 선언
friend int mulFive(Volume);

mulFive()라는 이름의 Friend Function을 선언했습니다. 이 함수는 Volume 객체를 입력으로 받아 정수 값을 반환합니다.

Friend Function 정의

이제 Friend Function 기능을 사용하여 Volume 클래스의 private 변수에 접근하는 mulFive() 함수를 정의합니다. mulFive() 함수를 정의하기 위해 다음 코드를 추가합니다.

// Volume 클래스에서 사용할 Friend Function 정의
int mulFive(Volume v) {
    //Friend function 은 비멤버 함수에서 private 데이터에 접근할 수 있도록 합니다.
    v.liter *= 5;
    return v.liter;
}

Friend Function 기능을 사용하여 Volumeprivate 변수 liter에 접근할 수 있는 mulFive() 함수를 정의했습니다. 이 함수는 liter 변수에 5 를 곱하고 그 값을 반환합니다.

main() 함수에서 Friend Function 호출

main() 함수에서 Volume 클래스의 객체를 생성하고 mulFive() 함수를 호출하여 Volume 클래스의 private 데이터에 접근하고 조작합니다. 이것이 마지막이자 가장 중요한 단계입니다.

// 클래스 멤버에 접근하기 위해 main 메서드 정의
int main() {

    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate the working of a Friend Function in CPP  ===== \n\n";

    // 클래스 멤버에 접근하기 위해 클래스 객체 선언
    Volume vol;

    cout << "Friend Function 호출 후 Volume = " << mulFive(vol);

    cout << "\n\n\n";

    return 0;
}

Volume 클래스의 객체를 생성하고 mulFive() 함수를 호출하여 Volume 클래스의 private 데이터에 접근하는 main() 함수를 정의했습니다.

요약

이 랩에서는 Volume 클래스를 생성하고 Friend Function을 사용하여 클래스 외부에서 이 클래스의 private 변수에 접근함으로써 C++ 프로그래밍 언어에서 Friend Function의 개념을 시연하는 방법을 배웠습니다. Friend Function은 클래스의 private 멤버에 접근할 수 있는 비멤버 함수이며, 클래스의 private 데이터를 조작하거나 접근해야 하는 경우 유용할 수 있습니다.