프로그래밍/관리C++

제네릭함수 Genernic function

에어버스 2018. 4. 21. 12:30

제네릭함수 Genernic function

템플릿과 비슷하다. (http://petra.tistory.com/1188)

템플릿은 컴파일할때 해당 함수의 코드가 추가되나, 제네릭함수는 추가코드가 추가되는것이 아니고 제네릭함수가 컴파일되고 실행시 타입에 맞게 변환만 해준다.

generic<typename T> where T : IComparable
T max(array<T>^ x)
{
 T max = x[0];
 for (int i = 0; i < x->Length; i++)
  if (max->CompareTo(x[i]) < 0) // max < x[i] 로 비교는 안된다
   max = x[i];
 return max;
}

int main(array<System::String ^> ^args)
{
 array<int>^ x = { 1, 24, 34, 22 };
 Console::WriteLine(max(x));
 array<long>^ medium = { 23, 345, 234, 123 };
 Console::WriteLine(max(medium));
 array<double>^ large = { 23.0, 1.4, 2.3, 56.2 };
 Console::WriteLine(max(large));
}