1
내 수업은 크기 매개 변수입니다. 하나의 메서드에서 임시 배열을 만들어야하지만 클래스의 크기 템플릿을 멤버 함수에 전달하는 방법을 모르겠습니다. 이것은 내가 시도하는 방법입니다클래스 템플릿을 멤버 함수에서 사용할 수 있습니까?
#include <array>
template<unsigned int N>
class MyClass{
std::array<int,N> m_data;
public:
void myFunc(){
std::array<int,N> tempArray;
}
};
int main(){
MyClass<5> obj;
obj.myFunc();
}
편집 : 빌드 로그 :
C:\Windows\system32\cmd.exe /C ""C:/Program Files/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/mingw32-make.exe" -j6 SHELL=cmd.exe -e -f Makefile"
"----------Building project:[ hatizsak_konyv - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'E:/progi/c++/CodeLite/Other/algoritmusok/dinamikus_programozas/hatizsak_konyv'
"C:/Program Files/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/g++.exe" -c "E:/progi/c++/CodeLite/Other/algoritmusok/dinamikus_programozas/hatizsak_konyv/main.cpp" -g -O0 -Wall -o ./Debug/main.cpp.o -I. -I.
E:/progi/c++/CodeLite/Other/algoritmusok/dinamikus_programozas/hatizsak_konyv/main.cpp: In instantiation of 'void MyClass<N>::myFunc() [with unsigned int N = 5u]':
E:/progi/c++/CodeLite/Other/algoritmusok/dinamikus_programozas/hatizsak_konyv/main.cpp:15:16: required from here
E:/progi/c++/CodeLite/Other/algoritmusok/dinamikus_programozas/hatizsak_konyv/main.cpp:8:27: warning: unused variable 'tempArray' [-Wunused-variable]
std::array<int,N> tempArray;
^~~~~~~~~
"C:/Program Files/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/g++.exe" -o ./Debug/hatizsak_konyv @"hatizsak_konyv.txt" -L.
mingw32-make.exe[1]: Leaving directory 'E:/progi/c++/CodeLite/Other/algoritmusok/dinamikus_programozas/hatizsak_konyv'
====1 errors, 1 warnings====
무엇이 질문입니까? –
이 코드는 작동하지 않으며 수정할 수 없습니다. –
템플릿 매개 변수는 메서드 정의 내에서 볼 수 있으며 코드는 그대로 작동해야합니다. 뭐가 문제 야? 어떤 오류 메시지가 나타 납니까? –