>  Q&A  >  본문

포인터 - C++ 초기화 목록에서 배열을 전달하는 방법은 무엇입니까?

아래 코드에서 언급했듯이 X와 Y는 정상적으로 생성될 수 있지만 A와 B는 'const int'을 'int []'에 할당할 때 오류 [Error] 호환되지 않는 유형을 보고합니다.

위 상황에서 초기화 목록에 배열을 전달하는 방법을 알려주세요.
이렇게 달성되었습니다

으아악

이러한 방식으로 멤버 변수는 임의 크기의 배열로 초기화됩니다.

으아악
巴扎黑巴扎黑2736일 전709

모든 응답(2)나는 대답할 것이다

  • 黄舟

    黄舟2017-05-16 13:27:27

    std::vector<int>,构造函数接受const std::vector<int> &arr,拷贝用this->o = arr사용을 권장합니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:27:27

    이 질문은 다음과 같이 변환될 수 있습니다. 초기화 목록을 통과할 수 있는 형식 매개변수 형식은 무엇입니까?

    템플릿이 아닌 경우:

    • void foo(T), void foo(const T &), 초기화 목록을 복사하여 T를 초기화할 수 있는 경우. 즉, 초기화 T x = {...};가 합법적입니다. void foo(T), void foo(const T &),当T可以用初始化列表拷贝初始化时。即初始化T x = {...};合法。

    • void foo(std::initializer_list<T>)

    模板:

    • template <class T> void foo(std::initializer_list<T>)

    • template <size_t N> void foo(const T (&)[N])

    • template <class T, size_t N> void foo(const T (&)[N])

    void foo(std::initializer_list<T>)

    템플릿:🎜 🎜 🎜🎜템플릿 <class T> void foo(std::initializer_list<T>)🎜🎜 🎜🎜템플릿 <size_t N> void foo(const T (&)[N])🎜🎜 🎜🎜template <class T, size_t N> void foo(const T (&)[N]), 이는 C++17에서만 사용할 수 있다고 하지만 일부 컴파일러에서는 이미 지원합니다. . 🎜🎜 🎜 🎜코드 샘플(불가능한 몇 가지 일반적인 상황 포함) 🎜 🎜배열 멤버 변수 초기화: 초기화 목록에서 배열 멤버를 초기화하는 간단한 방법은 없는 것 같습니다. 생성자의 함수 본문 내에 값을 할당하는 것이 좋습니다. 하지만 템플릿을 사용하면 이를 달성할 수 있습니다. 🎜 으아악

    회신하다
    0
  • 취소회신하다