C++/Class 2021. 3. 12. 17:53

멤버 초기화 리스트 (Member Initializer Lists)

  • 생성자를 만들 때 멤버들을 초기화해주는 기능

    • C++11부터 배열도 이 방식으로 초기화 가능하다고 한다.
    #include <iostream>
    
    class Something
    {
      int        i_;
      double    d_;
      char    c_;
    
    public:
      Something()
        : i_{ 1 }, d_{ 3.14 }, c_{ 'a' }
      {}
    };
    
    int        main()
    {
      Something a;
    }

기본 값 적용 우선순위가 헷갈릴 때

  #include <iostream>

  class Something
  {
      int        i_ = 100;
      double    d_ = 100.0;
      char    c_ = 'F';

  public:
      Something()
          : i_{ 1 }, d_{ 3.14 }, c_{ 'a' }
      {
          i_ *= 3;
          d_ *= 3.0;
          c_ += 3;
          std::cout << i_ << ' ' << d_ << ' ' << c_;
      }
  };

  int        main()
  {
      Something a;
  }

  /* stdout stderr
  3 9.42 d
  */

'C++ > Class' 카테고리의 다른 글

C++ 복사 생성자(Copy Constructor)  (0) 2021.03.12
C++ 위임 생성자 (Delegating Constructor)  (0) 2021.03.12
C++ 생성자 (Constructor)  (0) 2021.03.12
C++ 접근 지정자 (Access Specifier)  (0) 2021.03.12
C++ Class  (0) 2021.03.12