c++ 정보은닉 예제

0 0

이 블로그 게시물 전체에서 실행 중인 예제는 최근에 사용했기 때문에 파이썬과 Rust가 될 것입니다. 하스켈은 이것에서 많은 혜택을 또 다른 언어입니다. 일반적으로 캡슐화는 단일 단위로 데이터와 정보를 래핑하는 것으로 정의됩니다. 개체 지향 프로그래밍에서 캡슐화는 데이터와 이를 조작하는 함수를 함께 바인딩하는 것으로 정의됩니다. 캡슐화의 실제 예를 고려, 회사에서 계정 섹션, 금융 섹션, 판매 섹션 등과 같은 다른 섹션이 있습니다. 금융 섹션은 모든 금융 거래를 처리하고 금융과 관련된 모든 데이터의 기록을 보관합니다. 마찬가지로 영업 섹션에서는 모든 영업 관련 활동을 처리하고 모든 영업 기록을 유지합니다. 이제 어떤 이유로 금융 부문의 공무원이 특정 월의 판매에 대한 모든 데이터를 필요로하는 상황이 발생할 수 있습니다. 이 경우 영업 섹션의 데이터에 직접 액세스할 수 없습니다. 그는 먼저 판매 섹션의 다른 임원에게 연락한 다음 특정 데이터를 제공하도록 요청해야합니다.

이것이 캡슐화입니다. 여기에서 영업 섹션의 데이터와 이를 조작할 수 있는 직원의 데이터는 단일 이름 „영업 섹션“으로 래핑됩니다. 변형의 부족은 놀라운 일이 아니다 : 모든 예제는
헤더 파일을 제거하고 유일한 실질적인 차이점은 비 가상 공용 인터페이스가 두 배 많은 함수를 선언한다는 것입니다 (각각의 공용 및 개인 버전을 모두 갖는). 원본을 복구하려면(현재 디렉토리에서 sample_code.tar.Z라는 파일에 저장했다고 가정): X-Designer 자체가 생성 된 코드에 생성자와 소멸기를 보내는 유일한 시간은 클래스 지정일 때입니다. 위젯은 클래스로 지정된 다른 위젯을 포함합니다(예: 클래스로 지정된 양식에는 클래스로 지정된 Button도 포함됩니다.) Button 클래스가 둘러싸는 Form 클래스(또는 전역 또는 파일 정적 개체)의 멤버 개체로 나타나면 생성자 및 가상 소멸자가 각각 생성 및 소멸을 담당하는 둘러싸는 Form 클래스에 대해 선언됩니다. 동봉된 단추 개체입니다.