>백엔드 개발 >C++ >C에서 생성자를 사용하여 개체 배열을 초기화하는 방법은 무엇입니까?

C에서 생성자를 사용하여 개체 배열을 초기화하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-09 05:23:02806검색

How to Initialize Arrays of Objects with Constructors in C  ?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.