생성자에서 Const 필드 초기화
C 클래스 Bar에 Foo 포인터가 필요하고 수명 주기 동안 Foo 포인터를 불변으로 유지하려는 시나리오를 생각해 보세요. . 어떻게 구현해야 합니까?
처음에는 아래와 같이 생성자 내에서 const 필드를 초기화하는 것이 간단해 보일 수 있습니다.
<code class="cpp">class Foo; class Bar { public: Foo * const foo; Bar(Foo* foo) { this->foo = foo; } }; class Foo { public: int a; };</code>
그러나 이 접근 방식은 컴파일에 실패합니다. 해결책은 초기화 목록을 사용하는 것입니다.
<code class="cpp">Bar(Foo* _foo) : foo(_foo) { }</code>
이름 충돌을 방지하기 위해 들어오는 변수의 이름이 변경되었습니다. 이 초기화 목록은 생성자의 맨 처음 부분에서 const 필드를 초기화하여 불변성을 보장합니다.
위 내용은 C 생성자에서 `const` 필드를 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!