2015/07/23 수업 3일차
벡터란 .,, 한마디로 동적배열이다.
오늘 처음으로 c로 클래스를 구현해 보았다.
객체지향이라는 의미를 몸소 느낄수 있는 코딩시간이었다.
c를 객체 지향적으로 만드는일은 매우 번거롭다. 구조체 안에 변수만 넣을 수 있다.
그래서, visual studio에서 구조체 접근 연산자인 '.' 을 찍으면 멤버 변수를 볼 수 있다.
만일 여기에, 함수를 넣을 수 있다면? c++언어의 클래스와 비슷한 기능을 사용할 수 있다.
하지만, c에서는 함수를 구조체에 넣을 수 없기 때문에, 함수 포인터를 사용하였다.
------------------------------------------------------------------------------------------------
벡터의 동작원리
위와 같이,[1,2,3] 인 크기가 3개인 배열이있다. 이때 , 4를 추가로 넣고싶다.
이럴땐, 크기가 기존보다 큰 임시의 배열을 생성한다.
기존의 [1,2,3]을 임시배열에 모두 복사한다.
넣고자하는 값을 임시배열에 추가한다.
기존 배열을 가르키는 포인터가 임시배열을 가르키면, 배열의 크기가 더 커진 상태가 된다.
C/C++은 기존 배열을 메모리 해제 해줘야 하지만, JAVA의 경우는 단순히 이동만 하면 된
다.
위와 같이 , C로 클래스를 만들어 보았다.
vector.c 다운로드
vector.h 다운로드
vector sample 다운로드
0 개의 댓글:
댓글 쓰기