일관된 초기화 (내용 및 도입이유, 함수인자 관련 사용법)

  • C++11에서 도입된 일관된 초기화 혹은 중괄호 초기화

  • 기존 초기화 문제점

    • 변수의 타입/종류에 따라 초기화 방법이 다름.

        int n1 = 10;
      int n2(10);
      int x[2] = {1, 2};
      Point pt = {1, 2};
        
    • 암시적 형변환에 따른 데이터 손실 가능

      • char c = 300; → 경고가 없어
  • 장점

    • 일관된 초기화 방법
    • 데이터 손실이 발생할 경우 컴파일 에러 발생
  • 함수 인자

    • 함수 인자에 중괄호를 사용한 값 전달 가능
      void goo(Point p) {}
    -> goo({1,2})
      
  • 초기화

    • copy초기화
      • int n = {10}
    • direct 초기화 단어 인지
      • int n {10}
    • explicit 생성자를 가지는 타입은 direct 초기화만 가능하기때문에 인지