JJM

[Effective C++] 4. 설계 및 선언 [2/4]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 항목 20 : ‘값에 의한 전달’보다는 ‘상수객체 참조자에 의한 전달’ 방식을 택하는 편이 대개 낫다. 기본적으로 C++는 함수로부터 객체를 전달받거나 함수에 객체를 전달할 때 ‘값에 의한 전달’ 방식을 사용한다. (C에서 물려받은 특성...

[Effective C++] 4. 설계 및 선언 [1/4]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 소프트웨어 설계는 시작할 때는 뜬 구름 잡는 일반적인 아이디어로 시작했다가, 끝날 무렵이면 질척한 인터페이스 설계에 이르게 된다. 그리고 이렇게 만들어진 인터페이스는 C++ 선언문으로 옮겨져야 함이 옳은 순서일 것이다. 어떻게 하면...

[Effective C++] 3. 자원 관리 [2/2]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 항목 15 : 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자. 자원 관리 클래스는 실수로 터질 수 있는 자원 누출을 막아주는 역할을 하는 듬직한 클래스이다. 똑바로 설계된 시스템이라면 자원 누출이 없어야 한다는 것은 ...

[Effective C++] 3. 자원 관리 [1/2]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 프로그램이 분야에서 자원이란, 사용을 일단 마치고 난 후엔 시스템에 돌려주어야 하는 모든 것을 일컫는다. 돌려주지 않는 순간부터 암울한 일들이 시작할 될 것이다. C++ 프로그램에서 가장 흔하게 눈에 밟히는 자원이라면 동적 할당한 메모...

[Effective C++] 2. 생성자, 소멸자 및 대입 연산자 [3/4]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 항목 9 : 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 이유를 미리 알려주자면 호출 결과가 우리가 원하는 대로 돌아가지 않을 것이다. 자바나 C#을 하다가 C++을 공부하고 있는 입장이라면 이번 항목을 열심히 읽어보자...

[Effective C++] 2. 생성자, 소멸자 및 대입 연산자 [2/4]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 항목 7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 시간 기록을 유지하는 방법은 활용에 따라 무궁무진하다。 그래서인지 TimeKeeper정도의 이름을 가진 클래스를 기본 클래스로 만들어 놓은 후에 적절한 용도에...

[Effective C++] 2. 생성자, 소멸자 및 대입 연산자 [1/4]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 우리가 만드는 거의 모든 C++ 클래스에 한 개 이상 꼭 들어 있는 것들이 생성자와 소멸자, 대입 연산자이다. 이상할 게 없다. 이들은 C++ 프로그램에 있어서 일용할 양식과 같이 중요한 함수이다. 생성자는 새로운 객체를 메모리에 만드...

[Effective C++] 1. C++에 왔으면 C++의 법을 따릅시다 [2/2]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 항목 3: 낌새만 보이면 const를 들이대 보자! const의 면모에 대해 생각해 볼 때 정말 멋지다고 말할 수 있는 부분이 있다면 아마도 ‘의미적인 제약’(const 키워드가 붙은 객체는 외부 변경을 불가능하게 한다)을 소스 코드 수준에...

[Effective C++] 1. C++에 왔으면 C++의 법을 따릅시다 [1/2]

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 우리가 어떤 프로그래밍 언어를 어떻게 써왔는지는 상관없다. 어쨌든 중요한 건 C++는 익숙해지는 데 살짝 시간이 필요해 보인다는 거다. 제공하는 기능의 범위만 해도 어마어마한데다가 강력함까지 가지고 있는 C++이지만, 이 언어에서 뿜어져...