c++ / 7. POD를 아십니까?
( 데이터 구조, Plain old data structure )
일을 하다가 알게된 개념으로 Array를 POD와 Non POD로 만들어진 2개의 사이에서 삽질을 하다가 알게된 개념입니다.
POD 또는 PODS. 이 개념은 C언어의 Struct나 built-in-type과 동일한 메모리 구조를 갖는 object를 의미합니다.
즉 memset이나 memcpy와 같은 단순 메모리 복사가 가능한 것인데 여기서 C++의 클래스와 다른 부분입니다.
POD의 조건은 다음과 같습니다.
1. built-in-type
2. 가상 함수가 없고 사용자 정의 할당자와 소멸자를 갖지 않은 class의 object
3. non POD를 non-static 멤버로 가지지 않은 class의 object
만약 위 조건이 만족한다면 memcpy로 struct를 찍어내듯이 값을 이동시킬 수 있습니다.
하지만 아래와 같이 c++에서 많이 사용하는 class의 모습이라면 값을 복사한다고 하여도 동일한 속성을 갖지 못합니다.
즉, 물리적인 복사의 결과가 일치하지 않아질 수 있습니다.
http://1stpasa.tistory.com/entry/PODPlain-Old-Data-Non-POD
http://gpgstudy.com/forum/viewtopic.php?t=10148&view=previous
http://blog.daum.net/shuaihan/15856295
c++ / 7. POD를 아십니까? 끝.
'소프트웨어 > c++' 카테고리의 다른 글
[c++] snprintf, sprintf 예제 (0) | 2014.11.18 |
---|---|
2차배열 동적 할당, 교환하기 등. (0) | 2014.11.14 |
c++ / 6. 복사 생성사란. (+ 대입 연산자 오버로딩) (0) | 2014.09.23 |
c++ / 5. template를 사용해서 array만들기. - 1탄 (0) | 2014.09.17 |
c++ / 4. inner struct, 클래스 속에 struct를 생성한 후 struct를 통해 값 전달하기 (0) | 2014.08.27 |