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
반응형
'Application > 기초' 카테고리의 다른 글
[기초] C++ 가상 함수와 다형성 (0) | 2024.04.12 |
---|---|
[기초] C++ 생성자와 소멸자 (new, delete) (0) | 2024.04.10 |
[기초] C++ 상속과 다형성 (0) | 2024.04.04 |
[기초] C++ 객체 지향 프로그래밍 (OOP) (2) | 2024.04.02 |
[기초] C++ 파일 입출력 : 기초와 예제 (0) | 2024.04.01 |