아래 코드에서 언급했듯이 X와 Y는 정상적으로 생성될 수 있지만 A와 B는 'const int'을 'int []'에 할당할 때 오류 [Error] 호환되지 않는 유형을 보고합니다.
위 상황에서 초기화 목록에 배열을 전달하는 방법을 알려주세요.
이렇게 달성되었습니다
이러한 방식으로 멤버 변수는 임의 크기의 배열로 초기화됩니다.
으아악黄舟2017-05-16 13:27:27
std::vector<int>
,构造函数接受const std::vector<int> &arr
,拷贝用this->o = arr
사용을 권장합니다.
習慣沉默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에서만 사용할 수 있다고 하지만 일부 컴파일러에서는 이미 지원합니다. . 🎜🎜
🎜
🎜코드 샘플(불가능한 몇 가지 일반적인 상황 포함) 🎜
🎜배열 멤버 변수 초기화: 초기화 목록에서 배열 멤버를 초기화하는 간단한 방법은 없는 것 같습니다. 생성자의 함수 본문 내에 값을 할당하는 것이 좋습니다. 하지만 템플릿을 사용하면 이를 달성할 수 있습니다. 🎜
으아악