프로그래밍/관리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));
}