포인터 - C++ 초기화 목록에서 배열을 전달하는 방법은 무엇입니까?
巴扎黑
巴扎黑 2017-05-16 13:25:27
0
2
716

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

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

으아악

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

으아악
巴扎黑
巴扎黑

모든 응답(2)
黄舟

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

習慣沉默

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

템플릿이 아닌 경우:

  • 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에서만 사용할 수 있다고 하지만 일부 컴파일러에서는 이미 지원합니다. . 🎜🎜 🎜 🎜코드 샘플(불가능한 몇 가지 일반적인 상황 포함) 🎜 🎜배열 멤버 변수 초기화: 초기화 목록에서 배열 멤버를 초기화하는 간단한 방법은 없는 것 같습니다. 생성자의 함수 본문 내에 값을 할당하는 것이 좋습니다. 하지만 템플릿을 사용하면 이를 달성할 수 있습니다. 🎜 으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿