출처 : Effective C++ 멤버 초기화 리스트가 무엇인지 모르신다면 이전 포스트를 먼저 읽고 오시면 이 글을 읽는데 더욱 잘 이해될 것 같습니다. 이전 포스트에서는 멤버 초기화 리스트를 사용함으로 얻는 장점은 생성자 호출 + 대입으로 이어지는 함수 더블 호출을 한 번만으로 가능하게 하여 비용적인 면에서 효율적이다는 것이었습니다. 그렇다면 단순히 비용적 효율말고 멤버 초기화 리스트를 써야하는 또 다른 이유가 있을까요? 일단, 제일 큰 이유는 객체의 모든 데이터 멤버가 초기화된다는 보장을 받기 위해서입니다. 물론 객체 타입의 멤버(ex) STL - vector)들은 초기화 리스트에 넣지 않아도 컴파일러가 자동으로 기본 생성자를 호출하도록 만들어줍니다. 그러나, 기본 제공 타입(int, double) ..
출처 : Effective C++ 이 글을 읽기에 앞서 한 가지 법칙만 알고 가면 좋을 것 같습니다. 대입(assignment)과 초기화(initialization)은 서로 다른 개념이라는 것입니다. 예제1) 아래 코드는 string 객체를 초기화한 후, 대입합니다. std::string str; // 생성자 호출(초기화) str = "Hello World!"; // 복사 대입 연산자 호출(대입) 예제2) 반면 아래 코드는 string 객체에 대해서 초기화만 진행합니다. std::string str("Hello World!"); // 생성자 호출(초기화) 물론 위 두 과정 모두 결과는 똑같이 str 안에 "Hello World!"라는 스트링이 담겨있습니다. 예제 1같은 경우 생성자를 호출하고 대입까지 진..
- Total
- Today
- Yesterday
- computer_science
- 초기화 리스트
- 고도필터
- 드론개발
- 칼만필터
- PID
- DMA
- 컴퓨터구조
- 멤버 초기화 리스트
- SPI
- UART
- 터미널
- 오실로스코프
- DCM
- pwm
- 컴파일
- compile
- C++
- 로그
- STM32
- teraterm
- c
- 드론
- Effective C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |