C: 배열용 생성자 초기화
C에서는 객체 배열을 초기화하는 것이 어려울 수 있습니다. 배열이 아닌 시나리오의 경우 다음과 같은 생성자 구문을 활용할 수 있습니다.
struct Foo { Foo(int x) { /* ... */ } }; struct Bar { Foo foo; Bar() : foo(4) {} };
그러나 배열을 처리할 때 문제가 발생합니다.
struct Foo { Foo(int x) { /* ... */ } }; struct Baz { Foo foo[3]; // Incorrect syntax Baz() : foo[0](4), foo[1](5), foo[2](6) {} };
불행히도 C(더 많은 버전 이전) 최근 언어 반복) 생성자를 사용하여 배열 멤버를 초기화하는 간단한 방법은 없습니다. 이러한 제한은 배열 초기화 중에 자동으로 호출되는 배열 멤버에 대한 기본 생성자의 요구 사항에서 비롯됩니다. 그 후에 생성자 내의 추가 초기화가 진행됩니다. STL 기능이 없는 임베디드 시스템의 경우 한 가지 해결 방법은 생성 후 호출 가능한 명시적 init() 메서드와 함께 기본 생성자를 사용하여 초기화 프로그램이 필요하지 않도록 하는 것입니다.
위 내용은 C에서 생성자를 사용하여 개체 배열을 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!