Jihye Ha항목 9 : 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자객체 생성 및 소멸 과정 중에는 가상 함수를 호출하면 안 된다!Jan 11, 2023Jan 11, 2023
Jihye Ha항목 8 : 예외가 소멸자를 떠나지 못하도록 붙들어 놓자C++ 는 예외를 내보내는 소멸자를 좋아하지 않는다. 소멸자의 예외는 정의되지 않은 동작으로 이어지기 때문.Jan 10, 2023Jan 10, 2023
Jihye Ha항목 7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자C++ 규정에 따르면, 기본 클래스의 소멸자가 비가상 소멸자(non-virtual destructor) 일 경우, 파생 클래스 객체가 삭제될 때 프로그램의 동작은 미정의 사항이다. 일반적으로는 그냥 파생 클래스의 소멸자가 실행되지 않는다. 이 때는…Jan 9, 2023Jan 9, 2023
Jihye Ha항목 6 : 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자컴파일러는 기본 복사 생성자와 기본 대입 연산자가 public일때 발생하는 문제.Jan 6, 2023Jan 6, 2023
Jihye Ha항목 5 : C++ 가 은근슬쩍 만드는 함수에 촉각을 세우자.C++ 컴파일러는 컴파일 과정에서 클래스 내 필요한 생성자, 소멸자, 복사 생성자, 복사 대입 연산자등을 자동으로 만들어준다.Jan 5, 2023Jan 5, 2023
Jihye Ha항목4. 객체를 사용하기 전에 반드시 그 객체를 초기화 하자.C++에서 C만 사용하는 상황에서 그냥 int x; 라고 했을때 초기화 된다는 보장이 없다. (vector의경우 가능) 그렇기에 직접 초기화하거나 읽음으로서 초기화 되도록 하는 방법을 사용하는 것이 안전하다.Jan 4, 2023Jan 4, 2023
Jihye Ha항목 2. #define을 쓰려거든 const, enum, inline을 떠올리자#define으로 생성된 상수는 해당 상수가 사용될 때마다 복사본이 생성된다. 또한 상수의 타입(기호식)을 define은 인식 할 수 없기 때문에 컴파일 에러를 야기할 수 있다.Dec 29, 2022Dec 29, 2022