반응형

#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;
}

위와 같이 하면 에러 없을 겁니다..

참고 < > 사이 공백은 무시하세요..

반응형
Posted by Real_G