초기화 목록과 생성자의 할당
C에는 생성자에서 클래스 멤버를 초기화하는 두 가지 일반적인 접근 방식이 있습니다. 초기화 목록 또는 생성자 내에서 직접 값을 할당합니다. 구문은 다르지만 코드 생성 및 사용 시나리오에는 미묘한 차이가 있을 수 있습니다.
멤버 초기화 목록
멤버 초기화 목록은 쉼표로 구분된 멤버 초기화 목록입니다. 콜론(:) 뒤에 생성자 내에 배치됩니다. 제공한 예에서:
MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { }
이는 세 개의 멤버 변수 _capacity, _data 및 _len을 지정된 값으로 초기화합니다. 이 구문은 상수 멤버, 참조 및 기본 클래스 생성자를 초기화하는 데 선호됩니다.
생성자에서 할당
대체 접근 방식에서는 내부 클래스의 멤버 변수에 값을 할당할 수 있습니다. 생성자 본문:
MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 }
이 구문은 상수가 아닌 멤버를 초기화하는 데 더 일반적입니다. 변수.
코드 생성 및 최적화
컴파일러는 일반적으로 두 가지 접근 방식 모두에 대해 최적화된 코드를 생성합니다. 대부분의 경우 결과 어셈블리 코드는 동일합니다. 그러나 드문 경우지만 상수 멤버를 초기화하거나 기본값을 설정할 때 멤버 초기화 목록을 사용하면 더 효율적인 코드가 생성될 수 있습니다.
사용 시나리오
위에서 언급한 대로 , 상수 멤버, 참조 및 기본 클래스 생성자를 초기화하려면 멤버 이니셜라이저 목록이 필요합니다. 다른 멤버 변수의 경우 두 가지 접근 방식 모두 허용됩니다. 그러나 중요한 구성 또는 초기화 요구 사항이 있는 멤버 변수를 초기화하려면 멤버 이니셜라이저 목록을 사용하는 것이 가장 좋습니다.
예의 특정 경우에는 멤버 이니셜라이저 목록을 사용하거나 생성자는 실질적인 차이가 없습니다.
위 내용은 멤버 초기화 목록과 C 생성자의 할당: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!