Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

C++ Classes - Access Specifiers 본문

C++/공부내용

C++ Classes - Access Specifiers

HappyFrog 2022. 6. 29. 18:03


 

 

 

접근 지정자

지금까지 우리는 우리의 클래스 예시들로부터  public  키워드가 꽤나 친근해졌습니다:

 

 

예시

class MyClass {  // 클래스
  public:        // 접근 지정자
    // 클래스 멤버들은 이곳에 작성됩니다
};

 

 public  키워드는 접근 지정자입니다. 접근 지정자는 클래스의 멤버들에 어떻게 접근할 수 있는지를 정의해줍니다. 위 예시에서 멤버들은  public  입니다. - 코드의 바깥에서도 접근하여 수정이 가능하다는 뜻입니다.

 

하지만 우리가 멤버들을 외부로부터 숨기고 격리시키고 싶다면 어떡할까요?

 

C++에서는 세 가지의 접근 지정자가 있습니다:

  •  public  - 클래스 외부에서 멤버에 접근 가능합니다.
  •  private  - 클래스 외부에서 멤버에 접근하거나 볼 수 없습니다.
  •  protected  - 클래스 외부에서 멤버에 접근할 수 없지만, 상속된 클래스에서는 접근 가능합니다.

 

아래 예시에서 우리는  public 과  private 멤버의 차이점에 대해 다룰 것입니다:

 

 

예시

#include <iostream>

using namespace std;

class MyClass {
public:
	int x;
private:
	int y;
};

int main() {
	MyClass myObj;
	myObj.x = 25;	// 적용 가능 / public 
	myObj.y = 50;	// 접근 불가 / private (에러)
	return 0;
}

 

주의: 같은 클래스 안의 public 메서드를 통해 클래스의 private 멤버에 접근할 수 있습니다.

 

팁: 클래스의 멤버를 가능한 자주 private으로 선언하는 것은 좋은 연습이 될 것입니다. 이것은 당신의 코드가 꼬일 가능성을 줄여줍니다.

 

참고: 기본적으로, 접근 지정자를 특정하지 않은 클래스의 모든 멤버는  private 입니다:

 

 

예시

#include <iostream>

using namespace std;

class MyClass {
	int x;
	int y;
};

int main() {
	MyClass myObj;
	myObj.x = 25;	// 접근 불가 / private (에러)
	myObj.y = 50;	// 접근 불가 / private (에러)
	return 0;
}

 

'C++ > 공부내용' 카테고리의 다른 글

C++ Classes - Inheritance / Inheritance  (0) 2022.06.29
C++ Classes - Encapsulation  (0) 2022.06.29
C++ Classes - Constructors  (0) 2022.06.29
C++ Classes - Class Methods  (0) 2022.06.28
C++ Classes - Classes/Objects  (0) 2022.06.28