Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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 - Encapsulation 본문

C++/공부내용

C++ Classes - Encapsulation

HappyFrog 2022. 6. 29. 18:20


 

 

 

캡슐화

캡슐화의 의미는 "민감한"데이터를 유저들로부터 확실히 숨기는 것입니다. 이것을 하기 위해서 당신은 반드시 클래스의 변수/속성을  private 으로 선언해야 합니다. 만약 당신이 private멤버의 값을 다른 이가 읽고 수정할 수 있도록 하고 싶다면, 당신은 public으로 getset메서드를 제공할 수 있습니다.

 

 

 


Private 멤버에 접근하기

private 속성에 접근하기 위해선 public인 'get'과 'set' 메서드를 사용해야 합니다:

 

 

예시

#include <iostream>

using namespace std;

class Employee {
private:
	// private 속성
	int salary;

public:
	// 설정하기
	void setSalary(int s) {
		salary = s;
	}
	
	// 얻어오기
	int getSalary() {
		return salary;
	}
};

int main() {
	Employee myObj;
	myObj.setSalary(10000);
	cout << myObj.getSalary();
	return 0;
}

 

예시 설명

 salary 속성은 접근이 제한되는  private 입니다.

 

public인  setSalary()  메서드는 매개변수를 ( s ) 취하며 이것을  salary  속성에 할당합니다. (salary = s)

 

public인 getSalary()  메서드는 private인  salary 속성의 값을 반환합니다.

 

 main() 의 내부에서 우리는  Empoyee  클래스의 객체를 생성했습니다. 우리는 지금  setSalary()  메서드를 사용하여 private 속성에  50000 이라는 값을 할당했습니다. 그리고 이것을  getSalary()  메서드를 통해 값을 받아올 수 있습니다.

 

 

 


왜 캡슐화를 할까요?

  • 당신의 클래스의 멤버를 가능한 자주 private으로 선언하는 것은 좋은 연습이 됩니다. 당신이 코드의 한 부분을 다른 부분에 영향없이 변경할 수 있게하기 때문에 캡슐화는 당신의 데이터에 대해 더 나은 제어를 보장합니다.
  • 데이터의 보안 수준이 증가합니다.

 

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

C++ Classes - Inheritance / Multilevel Inheritance  (0) 2022.06.29
C++ Classes - Inheritance / Inheritance  (0) 2022.06.29
C++ Classes - Access Specifiers  (0) 2022.06.29
C++ Classes - Constructors  (0) 2022.06.29
C++ Classes - Class Methods  (0) 2022.06.28