본문 바로가기

정보정보

(36)
Class에서 static 변수의 쓰임 /* PersonalCount3.cpp */ #include using std:cout; using std:endl; Class person { char name[20]; int age; static int count; public: person(char* _name,int _age) { strcpy(name,_name); age = age; cout
More Effective CPP! 항목 1. 포인터(pointer)와 참조자(reference)를 구분하자. 가장 쉽게 볼수 있는 차이점은 연산자의 차이다. 포인터의 경우 *과 ->을 쓰고 참조는 .을 쓴다. 개념상의 차이점은 포인터의 경우 null을 가르킬수 있고 참조의 경우 null을 가르키는 것은 참조라 볼수 없다. 이 때문에 참조는 개념상 null을 검사할 필요가 없어 유용하다. C 언어에는 참조의 개념은 생략되었는데 C++에 들어오면서 클래스가 생기면서 명확한 개념으로 자리 잡힌듯 하다. 항목 2. 가능한 C++ 스타일의 캐스트를 즐겨 쓰자. 단순한 C 스타일의 캐스트인 괄호()는 너무나도 범용적인 의미를 지녀서 해석상 오류가 생기기 쉽다. 더욱이 C++로 넘어오면서 클래스와 상속으로 인해 의미를 식별하기 힘든 경우도 생길수 있..
스마트 포인터 - CPP 스마트 포인터란? 흠... 이번 시간엔 꽤나 영특한 녀석을 소개하고자 한다. 바로 '스마트 포인터' 란 놈인데 게으르고 주위 깊지 못한 본인과 같은 프로그래머 들에겐 한 줄기 단비와 같은 존재가 아닐수 없다. * 첨부된 예제에서 사용된 스마트 포인터는 boost 라이브러리에 속한 Shared Pointer( shared_ptr ) 란 놈이다. 따라서 이놈을 사용하려면 미리 라이브러리를 설치 해야 하는데 이곳에서 알아보도록 ( http://www.boost.org ) 동적 할당의 그림자 C++ 과 같은 객체 지향 언어에서 객체를 동적 할당을 이용해 생성하는 것은 아주 자연스러운 일이고 그 만큼 비일 비재하게 발생하게 된다. 그러나 모든 일에는 책임이 따르는 법, 똥을 쌌으면 누군가는 치워야하는 것이다. 즉..
DRM PC에 가지고 있는 데이터는 복사가 손쉽게 이루어진다.복사된 데이터는 P2P 프로그램이나 웹하드 디스크를 통해 널리 유포 된다.이렇게 저작권이 있는 Content, data의 무단 복제를 막기 위해 발표한 것이 DRM이 되시겠다.자 DRM이란 무었인가?Digital Rights Management의 약자로, 사전적의미는 "디지털 권리 관리(?)"이다.OMA에서 이 DRM을 Mobile 환경에 맞게 표준화 하여 OMA DRM 1.0을 발표했다.OMA DRM 1.0OMA DRM 1.0은 아래와 같이 각 Level로 나뉜다. Level은 선택사항라서 하나를 선택하면 되는 것이다.Forward LockCombined DeliverySeparated DeliveryForward Lock(이하 FL)FL은 Head..