반응형

프로그래밍/c++ 12

[c++] 객체지향 프로그래밍에서의 캡슐화란?

캡슐화란 c++에서는 class 내부의 맴버 변수에 직접접근하는 방식이 아니라 간접적으로 맴버함수(매서드)를 사용하여 접근하는 형식을 말한다.왜 직접 접근하지 않고 굳이 간접접근을 해야 하는걸까? 직접 접근하는 방식은 다른 객체에 의해 값이 변경될 수 도 있고 보안상 좋지 못한 방법이기 때문에 캡슐화의 정보은닉은 오류발생도 줄여주고 보안성을 향상시켜 준다. 요약하자면1. 캡슐화는 데이터와 데이터를 처리하는 함수의 묶음이다.2. 객체의 데이터를 직접 수정할수 없고 지정된 메서드를 통해서만 수정이 가능하다.(게터,세터)3. 정보은닉으로 오류발생도 감소 및 보안성 향상이 된다. 1234567891011class test_class{private: int value;public: void set_value(in..

프로그래밍/c++ 2018.12.19

[c++] this 포인터

c++ 에서 class를 작성할때 class내부의 변수와 메서드의 파라미터의 변수의 이름이 같을경우메서드 구현시 변수를 사용하면 class 내부의 변수를 사용하는건지 파라미터의 변수를 사용하는건지의미가 모호해 질 수가 있다. 이럴 경우에 this포인터를 사용하여 모호성을 해소를한다. this 포인터를 사용하면 내부의 변수를 사용한다는 의미를 갖게하고사용하지 않을 경우 파라미터의 변수를 사용한다는 의미를 갖게 한다.1234567class test_class{public: int value; void set_value(int value){ this->value = value; }};cs위의 코드에서 this->value는 위에 선언된 클래스 내부 변수 value를 가르키고값으로 받는 value는 set_va..

프로그래밍/c++ 2018.12.19
반응형