Skip to content

Commit

Permalink
docs: πŸ“ add post
Browse files Browse the repository at this point in the history
  • Loading branch information
nyj001012 committed Oct 18, 2023
1 parent 16f9de1 commit d0eebe7
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions _posts/42_seoul/2023-10-18-cpp07.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: "CPP Module 07"
excerpt: "C++ templates"
category:
- 42_seoul
author_profile: true
sidebar:
- nav: "main"
tag:
- 42μ„œμšΈ
- CPP
toc: true
toc_sticky: true
last_modified_at: 2023-10-18T00:00:00+09:00
---

# CPP Module 07
## 과제λ₯Ό 톡해 배울 수 μžˆλŠ” 것
이번 κ³Όμ œμ—μ„œλŠ” C++의 ν…œν”Œλ¦Ώμ— λŒ€ν•΄ ν•™μŠ΅ν•œλ‹€. ν…œν”Œλ¦Ώμ„ μ΄μš©ν•œ μ—¬λŸ¬ ν•¨μˆ˜, λ°˜λ³΅μžλ‚˜ 배열을 λ§Œλ“ λ‹€.

### template
λ‚΄κ°€ 맨 처음 이 과제λ₯Ό ν‰κ°€ν•˜λŸ¬ 갔을 λ•Œ ν…œν”Œλ¦Ώμ˜ 첫인상이 λ”± μ œλ„€λ¦­ νƒ€μž…μ΄μ—ˆλ‹€.

## λ²ˆμ™Έ. μ œλ„€λ¦­ VS ν…œν”Œλ¦Ώ
> μ°Έκ³ : [μ œλ„€λ¦­ 및 ν…œν”Œλ¦Ώ(C++/CLI)
](https://learn.microsoft.com/ko-kr/cpp/extensions/generics-and-templates-visual-cpp?view=msvc-170)

λ‚΄κ°€ 맨 μ•žμ—μ„œ ν…œν”Œλ¦Ώμ˜ 첫인상이 μ œλ„€λ¦­μ΄λΌκ³  ν–ˆλŠ”λ°, 문득 이 포슀트λ₯Ό μž‘μ„±ν•˜λ‹€λ³΄λ‹ˆ κ³Όμ—° κ·Έ λ‘˜μ΄ μ™„μ „νžˆ κ°™μ„κΉŒ ν•˜λŠ” 생각이 λ“€μ—ˆλ‹€. 그리고 ꡬ글링을 쑰금 ν•΄λ΄€λŠ”λ° μ—­μ‹œλ‚˜ κ·Έ λ‘˜μ— 차이점이 μžˆμ—ˆλ‹€.

| μ œλ„€λ¦­ | ν…œν”Œλ¦Ώ |
|------|-------|
| λŸ°νƒ€μž„ λ•Œ μžλ£Œν˜•μ΄ λŒ€μ²΄λ  λ•ŒκΉŒμ§€ μ œλ„€λ¦­ | 컴파일 λ•Œ μžλ£Œν˜•μ΄ νŠΉμ •λ¨ |
| μ œλ„€λ¦­ ν˜•μ‹μ΄ ν¬ν•¨λœ μ–΄μ…ˆλΈ”λ¦¬λ₯Ό μ°Έμ‘°ν•  λ•Œ μ œλ„€λ¦­ ν˜•μ‹μ„ νŠΉμ • ν˜•μ‹μœΌλ‘œ λŒ€μ²΄ κ°€λŠ₯ | 컴파일 μ‹œ, 일반 ν˜•μ‹μ΄κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ μ–΄μ…ˆλΈ”λ¦¬μ—μ„œ κ²°κ³Ό ν˜•μ‹μ„ νŠΉμˆ˜ν™”ν•  수 μ—†μŒ |
| λ™μΌν•œ ν˜•μ‹ 인수λ₯Ό μ‚¬μš©ν•˜λŠ” μ„œλ‘œ λ‹€λ₯Έ 두 μ–΄μ…ˆλΈ”λ¦¬μ—μ„œ νŠΉμˆ˜ν™”λœ μ œλ„€λ¦­μ€ 같은 ν˜•μ‹ | λ™μΌν•œ ν˜•μ‹ 인수λ₯Ό μ‚¬μš©ν•˜λŠ” μ„œλ‘œ λ‹€λ₯Έ 두 μ–΄μ…ˆλΈ”λ¦¬μ—μ„œ νŠΉμˆ˜ν™”λœ ν…œν”Œλ¦Ώμ€ λŸ°νƒ€μž„μ— λ‹€λ₯Έ ν˜•μ‹ |
| λͺ¨λ“  μ°Έμ‘°ν˜• λ§€κ°œλ³€μˆ˜μ— μ‚¬μš©ν•  수 μžˆλŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œ 쑰각으둜 생성됨 | ν…œν”Œλ¦Ώμ€ 각 μžλ£Œν˜•μ— λŒ€ν•΄ λΆ„λ¦¬λœ λŸ°νƒ€μž„ μ½”λ“œλ₯Ό 생성 |
| λΉ„ν˜•μ‹ ν…œν”Œλ¦Ώ λ§€κ°œλ³€μˆ˜(`template <int i> C {}`)λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ | ν—ˆμš© |
| νŠΉμ • ν˜•μ‹μ— λŒ€ν•œ ν…œν”Œλ¦Ώμ˜ μ‚¬μš©μž 지정 κ΅¬ν˜„ ν—ˆμš©ν•˜μ§€ μ•ŠμŒ | ν—ˆμš© |
| ν˜•μ‹ 인수의 ν•˜μœ„ 집합에 λŒ€ν•œ μ‚¬μš©μž 지정 κ΅¬ν˜„ ν—ˆμš©ν•˜μ§€ μ•ŠμŒ | ν—ˆμš© |
| μ œλ„€λ¦­ ν˜•μ‹μ˜ κΈ°λ³Έ 클래슀둜 ν˜•μ‹ 맀개 λ³€μˆ˜λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ | ν—ˆμš© |
| μ§€μ›ν•˜μ§€ μ•ŠμŒ | ν…œν”Œλ¦Ώ-ν…œν”Œλ¦Ώ 맀개 λ³€μˆ˜(`template<template<class T> class X> class MyClass`) 지원 |

0 comments on commit d0eebe7

Please sign in to comment.