Effective C++ 2

객체를 사용하기 전에 반드시 그 객체를 초기화하자

C++ 규칙에 의하면 어떤 객체이든 그 객체의 데이터 멤버는 생성자의 본문이 실행되기 전에 초기화되어야 한다라고 명기되어 있다. 항상 생성자의 멤버 초기화 리스트에 넣어서 초기화하는 습관을 들이도록한다. 명시적으로 초기화 된 멤버와 초기화가 되지 않은 멤버에 대한 구분이 명확해지고 생성 후 대입연산을 수행하는 것보다 생성자로 초기화하는 것이 더욱 효율적이기 때문. ★ 객체를 구성하는 데이터의 초기화 순서1. 기본 클래스는 파생 클래스보다 먼저 초기화된다.2. 클래스 데이터 멤버는 그들이 선언된 순서대로 초기화 된다. 초기화 리스트에 넣어진 순서가 다르더라도 초기화 순서는 선언된 순서와 같다. ★ 비지역 정적 객체의 초기화 순서는 개별 번역 단위에서 정해진다. 정적객체(static)1. 전역 객체2. 네임..

Effective C++ 2024.05.19

낌새만 보이면 const를 들이대자

멤버함수에 붙은 const 키워드의 장점1. 클래스의 인터페이스를 이해하기 좋게 하기 위함 : 그 클래스로 만들어진 객체를 변경할 수 있는 함수는 무엇이고, 또 변경할 수 없는 함수는 무엇인가를 사용자쪽에서 알고 있어야 한다. 2. 상수객체를 사용할 수 있게 하자 : c++ 프로그램의 실행 성능을 높이는 핵심 기법 중 하나가 객체 전달을 '상수 객체에 대한 참조자'로 진행하는 것임. 이때, 이 기법이 제대로 살아 움직이려면 상수 상태로 전달된 객체를 조작할 수 있는 const 멥버 함수, 즉 상수 멤버 함수가 준비되어 있어야 한다는 것이 포인트 어떤 멤버 함수가 상수 멤버(const)라는 것의 의미1. 비트수준 상수성, 다른 말로 물리적 상수성 : 비트수준 상수성은 어떤 멤버 함수가 그 객체의 어떤 데이..

Effective C++ 2024.05.18