다음과 같은 수업이 있습니다.
template<size_t N>
class A
{
typedef int(*ARRAY)[N];
array getArray();
ARRAY array;
};
그러면 ARRAY
정의 에서 유형 을 어떻게 사용할 수 있습니까? 나는 이것을 시도했다
template<size_t N>
ARRAY A<N>::getArray()
{
return array;
}
그러나 그것은 ARRAY
정의되지 않았다는 것을 말해줍니다 .
ARRAY
종속 된 이름이므로 클래스 범위 밖에서 typename
키워드 앞에 키워드 를 사용해야합니다 .
template<size_t N>
typename A<N>::ARRAY A<N>::getArray()
//^^^^^^^^^^^^^
{
return array;
}
또는 후행 반환 사용
template<size_t N>
auto A<N>::getArray() -> ARRAY
// ^^^^^^^^^^^^^
{
return array;
}
또한 클래스 멤버 선언에 오타가 있습니다. 그만큼
array getArray();
해야한다
ARRAY getArray();
그러나 사용하지 않으려는 이유가 std::array
있습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다