template을 함수에 사용하는 경우에 관한 질문
#include<iostream>
using namespace std;
template<typename T>
void show(T e)
{
T a=10.2;
cout << e << endl << a;
}
int main()
{
double d =10.1;
show(d);
return 0;
}
위 소스는 정상수행이 됩니다.
그런데..
template<typename T>
void show()
{
T a=10.2;
cout << e << endl << a;
}
int main()
{
show();
return 0;
}
이런식으로 파라미터를 통한 데이터형 결정을 할 수 없는 경우엔 어떤식으로 데이터형을 전달하는지 궁금합니다.
show()<int>;
뭐 이런 문법은 에러가 나는데요..
답변부탁드립니다.
----------------------------------------------------------------------------------------
에러 난다고 한 것을 보면
show() 에 e를 출력하게 되어 있는데 정의 되지 않은것이구요.
main에서 show를 호출할 때
show< double >() 면 a의 값이 정상 출력되고
show< int >()를 하면 a의 값이 int로 캐스팅되어
정수만 출력 됩니다.
#include < iostream >
using namespace std;
template< typename T >
void show()
{
T a=10.2;
cout << a << endl;
}
int main()
{
show< double >();
return 0;
}
위와 같이 하면 에러 없을 겁니다..
참고 < > 사이 공백은 무시하세요..
'C & C++ 관련' 카테고리의 다른 글
for 가 while 보다 빠른 이유는? (시간복잡도) (0) | 2007.03.14 |
---|---|
template함수 (0) | 2007.03.14 |
Template Functions에 대해 알려주세요.. ㅜ0ㅜ (0) | 2007.03.14 |