Application/기초

[기초] C++ 접근 지정자 (private , protected, public)

devsalix 2024. 4. 8. 06:57
728x90

 

C++은 객체지향 프로그래밍 언어로, 클래스와 객체를 사용하여 프로그램을 작성합니다.

이때 클래스 멤버 변수와 함수에 접근을 제어하기 위해 접근 지정자(access specifier)를 사용합니다.

C++에서는 세 가지 주요 접근 지정자가 있습니다.

'public', 'private', 'protected' 각각의 접근 지정자는 해당 멤버의 접근 범위를 결정합니다.

 


 

public

 

'public' 접근 지정자로 선언된 멤버는 어디서든지 접근할 수 있습니다.

이는 해당 멤버가 클래스 외부에서도 접근 가능하다는 것을 의미합니다.

일반적으로 클래스의 인터페이스를 정의할 때 'public' 접근 지정자를 사용합니다.

 

private

 

'private' 접근 지정자로 선언된 멤버는 클래스 내부에서만 접근할 수 있습니다.

이는 해당 멤버가 클래스 외부로부터 숨겨져 있다는 것을 의미하며,

클래스의 구현 세부 사항을 숨기는 데 사용됩니다.

 

protected

 

'protected' 접근 지정자로 선언된 멤버는 클래스 내부와 파생 클래스에서만 접근할 수 있습니다.

이는 해당 멤버가 기본 클래스와 파생 클래스 간의 상속 관계에서 사용됩니다.

'protected' 멤버는 기본 클래스의 구현 세부 사항을 파생 클래스가 접근할 수 있도록 허용합니다.

 

예시 코드

 

#include <iostream>

class MyClass {
public:
    int publicVar; // public 멤버 변수

    void publicFunction() { // public 멤버 함수
        std::cout << "This is a public function." << std::endl;
    }

private:
    int privateVar; // private 멤버 변수

    void privateFunction() { // private 멤버 함수
        std::cout << "This is a private function." << std::endl;
    }

protected:
    int protectedVar; // protected 멤버 변수

    void protectedFunction() { // protected 멤버 함수
        std::cout << "This is a protected function." << std::endl;
    }
};

int main() {
    MyClass obj;
    obj.publicVar = 10; // public 멤버에 접근 가능
    obj.publicFunction(); // public 함수 호출

    // obj.privateVar = 20; // private 멤버에 접근 불가 (컴파일 에러)
    // obj.privateFunction(); // private 함수 호출 불가 (컴파일 에러)

    // obj.protectedVar = 30; // protected 멤버에 접근 불가 (컴파일 에러)
    // obj.protectedFunction(); // protected 함수 호출 불가 (컴파일 에러)

    return 0;
}

 

마무리

 

C++에서의 접근 지정자는 클래스 멤버 변수와 함수의 접근을 제어하는 중요한 도구입니다.

이를 통해 클래스의 구현을 캡슐화하고 코드의 안정성과 보안성을 높일 수 있습니다.

 

 


제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

 

 
728x90
반응형