1.Template

1-1.개념, 사용방법

1-2. Specialization

template<typename T>
void Point<T>::Print()
{
	std::cout << x << ", " << y << std::endl;
}

template<> //specialization
void Point<int>::Print() {
	std::cout << x << ":" << y << std::endl;
}

Untitled

1-3. Overload and Template

template <class T>

void print(T array[], int n){
 for(int i=0; i<n; i++){
 std::cout << array[i] << '\\t';
 }
 std::cout << endl;
}

void print(char array[], int n){
 for (int i=0; i < n; i++){
 std::cout << array[i] << '\\t';
 }
 std::cout << endl
}

int main(){
 int x[] = {1, 2, 3, 4, 5};
 print(x, 5); //print(x, 5); -> void print(T array[], int n)를 호출
 char c[5] = {'1', '2', '3', '4', '5'};
 print(c, 5); // print(c, 5);  -> void print(char array[], int n) 를 호출
}

2.STL(Standard Template Library)