ν…œν”Œλ¦Ώ ν•¨μˆ˜
Β·
곡뢀/CㆍC++
ν…œν”Œλ¦Ώ ν•¨μˆ˜λŠ” μ»΄νŒŒμΌλ˜μ§€λ„ ν˜ΈμΆœλ˜μ§€λ„ μ•Šμ€ ν•¨μˆ˜μ˜ ν‹€ μ œλ„€λ¦­ ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  컴파일 μ‹œμ μ— κ΅¬μ²΄ν™”μ‹œν‚€κΈ° μœ„ν•œ 틀을 λ§Œλ“œλŠ” 것 맀크둜(#define)와 달리 λ³΅μž‘ν•œ ν•¨μˆ˜λ‚˜ 클래슀λ₯Ό ν‘œν˜„ν•˜λŠ”λ° ν•œκ³„κ°€ μ—†λ‹€. μ œλ„€λ¦­ 클래슀(generic class)도 λ§Œλ“€ 수 μžˆλ‹€. ν…œν”Œλ¦Ώ ν•¨μˆ˜μ˜ μž₯점 - ν•¨μˆ˜ μ½”λ“œμ˜ μž¬μ‚¬μš©μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄μ˜ 생산성과 μœ μ—°μ„±μ„ λ†’μž„ ν…œν”Œλ¦Ώ ν•¨μˆ˜μ˜ 단점 - μ»΄νŒŒμΌλŸ¬μ— λ”°λΌμ„œ ν…œν”Œλ¦Ώμ΄ μ§€μ›λ˜μ§€ μ•Šμ„ 수 μžˆμ–΄μ„œ ν¬νŒ…μ— μ·¨μ•½ - 였λ₯˜ λ©”μ‹œμ§€κ°€ λΉˆμ•½ν•˜μ—¬ 디버깅에 λ§Žμ€ 어렀움이 있음 *swap ν•¨μˆ˜λ₯Ό ν…œν”Œλ¦Ώ ν•¨μˆ˜λ‘œ ν‘œν˜„* 1 2 3 4 5 6 7 8 template void swap(T &a, T &b) { T temp; temp = a; a=b; b=tmp; } cs