2019/01 9

[C++]new, delete 연산자 오버로딩

new 연산자 오버로딩Point * ptr = new Point(3, 4);기본적으로 제공되는 new 연산자가 하는 일 1) 메모리 공간의 할당 2) 생성자의 호출 3) 할당하고자 하는 자료형에 맞게 반환된 주소 값의 형 변환* 이중 3)번의 일을 수행함으로써 C에서 사용하던 malloc과 달리 new 연산자가 반환하는 주소값을 형변환할필요가 없게 된다. 기본적으로 제공되는 new 연산자가 하는 일은 위 3가지이고, 우리가 new 연산자를 오버로딩할 경우엔 위 세가지 작업중 1번에 해당하는 메모리 공간의 할당만 구현하면 된다. *new 연산자 오버로딩은 아래와 같이 오버로딩 하도록 되어있다. - 반드시 void 포인터 형 반환 - 매개변수형은 size_t Point * ptr = new Point(3,4..

개발/C, C++ 2019.01.13

2019년 개봉하는 애니메이션 기대작

2019년이 어느 해보다 기다려진 이유, 올해는 기다리던 디즈니/드림웍스의 유명 애니메이션 속편들과 함께 '호소다 마모루', '신카이 마코토'와 같이 국내에서 높은 흥행을 기록했던 감독들의 신작도 개봉하기 때문이다.인터넷 공간으로 세계관을 넓힌 주먹왕 랄프2를 시작으로 끝인줄 알았던 토이스토리의 새로운 시작 '토이스토리 4', 드림웍스의 드래곤 길들이기의 마지막 시리즈인 '드래곤 길들이기 3'가 올 여름 개봉한다. 또한 올 겨울엔 모두가 기다려 오던 '겨울왕국 2' 역시 개봉하여 엘사와 안나를 다시 스크린에서 만나볼 수 있다.대작 일본 애니메이션도 개봉한다. 포스트 미야자키로 불리는 두 감독, '호소다 마모루'의 '미래의 미라이'가 1월, '신카이 마코토'의 '날씨의 아이'가 7월 개봉예정이다. 한국 애..

[C++] 연산자 오버로딩 - 디폴트 대입 연산자

대입 연산자의 특징 - 정의하지 않으면 디폴트 대입 연산자가 삽입된다. - 디폴트 대입 연산자는 멤버 대 멤버의 복사(얕은 복사)를 진행한다. - 연산자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야 한다.*객체간의 대입연산은 C언어의 구조체 변수간의 대입연산과는 본질적으로 다르다. 이는 단순한 대입연산이 아닌, 대입 연산자를 오버로딩 한 함수의 호출이기 때문이다. 디폴트 대입 연산자의 문제점- 디폴트 복사 생성자의 문제점과 유사하다. 디폴트 대입 연산자는 멤버 대 멤버를 단순히 복사만 하게 된다.-> 깊은 복사를 진행하도록 정의, 메모리 누수가 발생하지 않도록, 깊은 복사에 앞서 메모리 해제의 과정을 거친다.123456789Person& operator=(const Perso..

개발/C, C++ 2019.01.12

[책리뷰] Accelerated C++

Accelerated C++ C++를 C++답게 배우는 16가지 방법 'Accelerated C++'의 저자는 스탠퍼드 대학에서 C++ 수업을 진행했던 교수로, 이 책은 학생들이 C++을 효과적으로 배울 수 있었던 방법을 정리하여 쓴 내용이다. 책의 부제는 'C++답게 배우는 16가지 방법'인데 이는 책의 각 내용이 16챕터로 나눠져 있기 때문이다. 각 챕터는 순차적으로 진행하며 C++과 STL의 기본 개념부터 시작하여 개념을 확장하는 방식으로 예제와 함께 설명하고 있다. 각각의 예제들을 따라하다 보면서 무엇이 필요한지, 어떠한 상황에서 무엇을 사용해야 하는지를 자연스럽게 이해하기 쉽게 설명하고 있다. 각 챕터별로 예제를 따라하면서 자연스럽게 개념을 확장하는 식으로 진행이 되며, 각각의 예제에 필요한 C..

취미/책 2019.01.09

[C++] 단항 연산자 오버로딩

대표적인 단항 연산자 - 1 증가 연산자 : ++ - 1 감소 연산자 : -- ++pos;-> operator++()의 함수형태로 오버로딩 되어 있다. 멤버함수인 경우 operator++()의 형태, 전역함수의 경우 operator++(Point& ref)의 형태이다.아래와 같이 구현되어있다.1234567891011121314Point& operator++(){ xpos+=1; ypos+=1; return *this;} Point& operator--(){ xpos-=1; ypos-=1; return *this;} cs-> this는 객체 자신의 포인터 값을 의미한다. 즉, 위 함수에서 객체 자신을 참조형으로 반환한다. 그렇기 때문에 객체 자신의 복사본을 만들어 반환하게 된다. 그래서 아래의 형태도 가능..

개발/C, C++ 2019.01.03
반응형