More Related Content
PPTX
PPTX
Effective c++ ์ฑํฐ 2 ์ ๋ฆฌ PPTX
PPTX
Effective c++ ์ ๋ฆฌ chapter 6 PPT
effective c++ chapter 3~4 ์ ๋ฆฌ PPTX
Effective c++ ์ ๋ฆฌ chapter 4 PPTX
PPTX
What's hot
PDF
Effective c++ chapter 1,2 ์์ฝ PPTX
PPTX
PPTX
Effective C++ ์ ๋ฆฌ chapter 3 PPTX
PPTX
Effective c++ ์ ๋ฆฌ chapter 8 PPTX
PPTX
PDF
More effective c++ แแ
กแผแแ
ฉแจ30แแ
ฎแแ
ฅ PDF
More effective c++ chapter1 2_dcshin PDF
Effective c++ chapter3, 4 ์์ฝ๋ณธ PDF
C++ Advanced ๊ฐ์ 4์ฃผ์ฐจ PPTX
PDF
๋์์ฑ ํ๋ก๊ทธ๋๋ฐ ํ๊ธฐ ์ข์ Clojure PDF
C++ Advanced ๊ฐ์ 2์ฃผ์ฐจ PDF
PPTX
์ดํํฐ๋ธ C++ 5,6 ์ฅ ์คํฐ๋ PDF
C++ Advanced ๊ฐ์ 1์ฃผ์ฐจ PPTX
PPTX
Similar to Mec++ chapter3,4
PPTX
More effective c++ แแ
ขแธแแ
ฅ3~4ppt PDF
PDF
PPTX
๋ชจ์ด์ดํํฐ๋ธ C++ 3,4์ฅ ์์ธ, ํจ์จ ์คํฐ๋ PDF
More effective c++ chapter3 4 PPTX
PPTX
Effective c++(chapter 5,6) PPTX
Effective c++chapter1 and2 PDF
Effective c++ chapter1 2_dcshin PPTX
PDF
PPTX
์ดํํฐ๋ธ C++ ์คํฐ๋ PPTX
PPTX
PDF
PPTX
More Effective C++ 4์ฃผ์ฐจ PPTX
Api design for c++ pattern PPTX
Api design for c++ ch3 pattern PPTX
More effective c++ Chap1~2 PPTX
C++ ์ฝ๋ฉ์ ์ ์.pptx More from ๋ฌธ์ต ์ฅ
PPTX
PPTX
Effective c++ chapter 7,8 PPTX
More effective c++ chapter1,2 PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
์ผ๊ฐํ์ผ๋ก ์ง๋ฉด ๋ง๋ค๊ธฐ PPTX
์์ผ ์ฃผ์ ๊ตฌ์กฐ์ฒด ๋ค๋ฃจ๊ธฐ(์๋์ฐ ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ) PPTX
PPTX
PPTX
Effective c++(chapter3,4) Mec++ chapter3,4
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
ํญ๋ชฉ10: ์์ฑ์์์ ๋ฆฌ์์ค๋์ ๋ฐฉ์ง
โข C++์์๋ ์์ฑ ๋์ค์ ์์ธ๋ฅผ ์ผ์ผํจ ๊ฐ์ฒด์ ๋ํด์๋ ๋ง๋ฌด
๋ฆฌ ์์
์ ํด์ฃผ์ง ์๋๋ค.
โข ์ด๋ฐ ์์
์ด ํ์ํ๋ค๋ฉด ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ์์ฑ์๋ฅผ ์ค๊ณํด์ผ
ํ๋ค.
โข try-catch๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ์๋ฅผ ๊ตฌํํ ์๋ ์๋ค.
- 8.
- 9.
- 10.
- 11.
- 12.
ํญ๋ชฉ11: ์๋ฉธ์์์๋ ์์ธ๊ฐํ์ถ๋ชปํ๊ฒ
โข ํด๋์ค ์๋ฉธ์๊ฐ ํธ์ถ๋๋ ๊ฒฝ์ฐ๋?
โข ๊ฐ์ฒด๊ฐ ํต์์ ์ธ ์กฐ๊ฑด์์ ์๋ฉธ๋๋ ๊ฒ์ธ๋ฐ, ํต์์ ์ธ ์กฐ๊ฑด์ด๋
์ง์ญ๋ณ์๋ก ์ ์ธ๋ ๊ฐ์ฒด๊ฐ ์ ํจ๋ฒ์(scope)๋ฅผ ๋ฒ์ด๋ฌ์๋์ ๊ฐ
์ฒด๊ฐ ์ง์ ์ญ์ (delete)๋ ๋
โข ์์ธ ์ฒ๋ฆฌ ๋งค์ปค๋์ฆ์ ์ํด ๊ฐ์ฒด๊ฐ ์๋ฉธ๋๋ ๊ฒ์ธ๋ฐ, ์์ธ ์ ํ
(exception propagation) ๊ณผ์ ์ ์ผ๋ถ๋ถ์ผ๋ก ์คํ ๋๊น๊ฐ๊ธฐ ์ง
ํ๋ ๋
โข ์ฆ, ์๋ฉธ์๊ฐ ํธ์ถ๋์์ ๋ ์์ธ์ผ์๋ ์๋ ์๋ ์๋ค.
- 13.
C++ terminateํจ์
โข ํ๋ก๊ทธ๋จ์์คํ์ ๋์ฅ๋ธ๋ค.
โข ์ง์ญ ๊ฐ์ฒด์กฐ์ฐจ๋ ์๋ฉธ๋์ง ์๋๋ค.
โข ์ด๋ค ์์ธ์ ๋ํ ์ฒ๋ฆฌ๊ฐ ์งํ๋๊ณ ์๋ ๋์ ๋ ๋ค๋ฅธ ์์ธ ๋
๋ฌธ์ ํ๋ก๊ทธ๋จ ํ๋ฆ์ด ์๋ฉธ์ ํจ์๋ฅผ ๋ ๋๋ฉด, C++ terminate ํจ
์๋ฅผ ํธ์ถํ๊ฒ ๋๋ค.
โข ์ด๋ฅผ ๊ณ ๋ คํ์ฌ ์ด๋ค ์ํฉ์์๋ ์๋ฉธ์๋ฅผ ์์ฑํ ๋ ์์ธ๊ฐ ๋ฐ
์๋ ์ํ์ ์๋ค๊ณ ๊ฐ์ ํ์ฌ์ผ ํ๋ค.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
catch() ๋ฌธ์์ ํ์ฉ๋๋ํ์
๋ณํ
โข ํ์
์ด ์๋ ํฌ์ธํฐ๋ก๋ถํฐ ํ์
์ด ์๋ ํฌ์ธํฐ๋ก ๋ฐ๊พธ๋ ๊ฒฝ์ฐ
โข ์ฆ, const void* ํฌ์ธํฐ๋ฅผ ๋ฐ๋ catch ๋ฌธ์ ์ด๋ค ํฌ์ธํฐ ํ์
์
์์ธ์ด๋ ์ง ์ก์ ๋ผ ์ ์๋ค.
โข catch (const void*) โฆ
- 27.
๋งค๊ฐ๋ณ์ ์ ๋ฌ๊ณผ ์์ธ์ ํ ์ฌ์ด ์ฐจ์ด์ 3
โข catch ๋ฌธ์ ๋ฑ์ฅํ ์์์ ๋ฐ๋ผ ์ฌ์ฉ๋๋ค.
โข ํ์ ํด๋์ค ํ์
์ ๋ฐ๋ catch ๋ฌธ์ด ์ค๋น๋์ด ์๋ค๊ณ ํด๋ ์
์๊ฐ ์ ๋๋ก ๋์ด ์์ง ์์ผ๋ฉด, ๊ธฐ๋ณธ ํด๋์ค ํ์
์ ๋ฐ๋ catch
๋ฌธ์ด ํ์ ํด๋์ค ํ์
์ ์์ธ๋ฅผ ์ก์๋ผ ์ ์๋ค.
- 28.
- 29.
ํญ๋ชฉ13: ๋ฐ์ํ ์์ธ๋์ฐธ์กฐ์๋ก
โข catch ๋ฌธ์ ์์ฑํ ๋์๋ ์์ธ ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋๋ ๋ฐฉ์์ ์ค์ ํด
์ผ ํ๋ค.
โข ํฌ์ธํฐ, ๊ฐ, ์ฐธ์กฐ์์ ์ํ ์ ๋ฌ์ด ๊ฐ๋ฅํ๋ค.
- 30.
- 31.
ํฌ์ธํฐ์ ์ํ ์์ธ์ ๋ฌ
โข์์ธ ๊ฐ์ฒด๊ฐ ํ์ ํ ๋น๋ ์ฃผ์๋ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ง๊ธฐ ์ํด ํฌ
์ธํฐ๋ฅผ ์ญ์ ํด์ผ ํ๋ค.
โข ๊ทธ๋ฐ๋ฐ ์์ธ ๊ฐ์ฒด๊ฐ ํ์ ํ ๋น๋์ง ์๋๋ค๋ฉด?
โข ์ฌ์ฉ์์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
โข ์ด๋ค ์ฌ์ฉ์๋ ์ ์ญ ๊ฐ์ฒด๋ ์ ์ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ๋๊ธธ ์ ์๊ณ ,
์ด๋ค ์ฌ์ฉ์๋ ํ์ ํ ๋น๋ ์์ธ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ๋๊ธธ ์ ์๋ค.
โข C++ ๊ธฐ๋ณธ ์ ๊ณต ํ์ค ์์ธ๋ ๊ฐ์ฒด์ ๋ํ ํฌ์ธํฐ๊ฐ ์๋๋ผ ๋ชจ๋
๊ฐ์ฒด์ด๋ค. ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์ธ๋ค์ ์ฌ์ฉํ ์ ์๋ค.
- 32.
๊ฐ์ ์ํ ์์ธ๋ฐ๊ธฐ(catch-by-value)
โข์์ธ ์ญ์ ๊ณ ๋ฏผ์์ ํด๋ฐฉ
โข C++ ํ์ค ์์ธ์๋ ์ ๋ง๋ค.
โข ์ ๋ฌ๋๋ ์์ธ ๊ฐ์ฒด๋ ๋ ๋ ๋ฒ์ฉ ๋ณต์ฌ๋์ด์ผ ํ๋ค.
โข ์ฌ๋ผ์ด์ค ๋ฌธ์ (slicing problem): ๋ฐ์ ์์๋ ํ์ ํด๋์ค์ ๊ฐ
์ฒด์๋ค๊ฐ, ๊ธฐ๋ณธ ํด๋์ค๋ฅผ ๋ฐ๋ catch ๋ฌธ์ ๋ค์ด๊ฐ๋ฉด ํ์ ํด๋
์ค ๋ถ๋ถ์ ์ถ๊ฐ๋์๋ ๋ฐ์ดํฐ๊ฐ ์น๋ ์๋ ค ๋๊ฐ๋ ํ์
- 33.
- 34.
- 35.
- 36.
- 37.
์์ธ ์ง์ ์๋ ํจ์๋ฅผ ํธ์ถํ๋ ํจ์์๋ ์์ธ ์ง์ ์ ๋์ง ์๋๋ค.
- 38.
์์คํ
์ด ์ผ์ผํค๋ ์์ธ๋ฅผ์ฒ๋ฆฌ
โข โ์์คํ
โ์ด ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ์๋ ์์ธ(C++ ํ์ค ์์ธ)
โข ์ด๋ฐ ์์ธ ์ค ๊ฐ์ฅ ํํ ๊ฒ์ด bad_alloc
โข ์ด ์์ธ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์คํจํ operator new์ operator
new[]๊ฐ ๋ฐ์์ํจ๋ค.
- 39.
- 40.
- 41.
์์ธ ์ง์ ์ ๊ณ ๋ คํ ์
โข ์ด๋ค ์์ธ๊ฐ ๋ฐ์๋ ์ง๋ฅผ ์๋ ค์ค๋ค๋ ๋ฉด์์ ๋ฌธ์ํ์ ๋์์ด
๋๋ค.
โข C++๋ ์์ธ ์ง์ ์ ์๋ฐฐ๊ฐ ๋ฐ์ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์
์ผ ์ ์ค๋จ์ํจ๋ค.
โข ์ปดํ์ผ๋ฌ๋ ์์ธ ์ง์ ์ ๋ํด ๋ถ๋ถ์ ์ธ ์ผ์น์ฑ ์ ๊ฒ๋ง ์ํํ
๊ณ , ํ๋ก๊ทธ๋๋จธ๋ ์์ธ ์ง์ ์ ์ผ์น์ฑ์ ์ด๊ธฐ๊ธฐ ์ฝ๋ค.
- 42.
ํญ๋ชฉ15: ์์ธ์ฒ๋ฆฌ ๋น์ฉ์์ ๋๋ก ์์
โข ์์ธ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ํ ์ฐ์ง ์์์ ๋์ ๋น์ฉ์
โข ์ด๋ค ๊ฐ์ฒด๊ฐ ์์ฑ ๊ณผ์ ์ ์๋ฃํ๋์ง ์ฒดํฌํ๋ ๋ฐ์ ๋ด๋ถ์ ์ผ
๋ก ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ชจ๋๋ค.
โข ์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ์
๋ฐ์ดํธํ๋ ๋ฐ์ ํ์ํ ์๊ฐ์ด ์๋ชจ๋๋ค.
โข ๊ฒฐ๋ก ์ ์ผ๋ก ์์ธ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋ฐฐ์ ํ๊ณ ์ปดํ์ผํ ํ๋ก๊ทธ๋จ์
์์ธ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๋๋ก ์ปดํ์ผํ ๊ฒ์ ๋นํด ์๋๋ ๋น ๋ฅด๊ณ ํฌ
๊ธฐ๋ ์๋ค.
- 43.
try ๋ธ๋ก์ผ๋ก ์๊ธฐ๋๋น์ฉ
โข try ๋ธ๋ก์ด ์์ค์ ๋ค์ด๊ฐ๊ธฐ๋ง ํ๋ฉด, ์ฆ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ฒ ๋ค๊ณ ์
์ ํ๋ฉด ๋ฌด์กฐ๊ฑด ์ง๋ถํด์ผํ ๋น์ฉ์ด๋ค.
โข ์์ธ ์ง์ ๊ธฐ๋ฅ์ ๋ํด์๋ try ๋ธ๋ก๊ณผ ๋น์ทํ ์์ ์ฝ๋๊ฐ ์์ฑ
๋๊ธฐ ๋๋ฌธ์, ์์ธ ์ง์ ์ ๋ค์ด๊ฐ๋ try ๋ธ๋ก๊ณผ ๋น์ทํ๋ค.
โข ์์ธ๊ฐ ๋ฐ์๋๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๊ธฐ ๋๋ฌธ์ ์์ธ ๋ฐ์ ์ ์๋ชจ๋๋
๋น์ฉ์ ํฐ ๊ด์ฌ์ฌ๊ฐ ๋์ง ๋ชปํ๋ค.
โข ์ฐ์ ๊ฐ๋ฅํ๋ค๋ฉด ์์ธ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๋๋ก ์ปดํ์ผํ๋ค.
- 44.
ํญ๋ชฉ16: 80-20 ๋ฒ์น
โขํ๋ก๊ทธ๋จ ๋ฆฌ์์ค์ 80%๋ ์ ์ฒด ์คํ ์ฝ๋์ ์ฝ 20%๋ง์ด ์ฌ์ฉ
ํ๋ค.
โข ์คํ์๊ฐ์ 80%๋ ์คํ ์ฝ๋์ ์ฝ 20%๋ง ์๋ชจํ๋ค.
โข ๋ฉ๋ชจ๋ฆฌ์ 80%๋ ์คํ ์ฝ๋์ ์ฝ 20%๋ง์ด ์ฌ์ฉํ๋ค.
โข ๋์คํฌ ์ ๊ทผ ํ์์ 80%๋ ์คํ์ฝ๋์ 20%๊ฐ ์ ๊ทผํ ํ์๋ค.
โข ํ๋ก๊ทธ๋จ ์ ์ง๋ณด์์ ๋ค์ด๊ฐ๋ ์๊ณ ์ 80%๋ ์คํ ์ฝ๋์ 20%
์ ์ง์ค๋๋ค.
โข ์๋ฌด ๊ณณ์ด๋ ๊ณจ๋ผ์ก๊ณ ํจ์จ์ ํฅ์์ํค๋ ค๊ณ ์ ์ฐ์ง ๋ง๋ผ.
- 45.
ํ๋ก๊ทธ๋จ ํ๋กํ์ผ๋ฌ
โข programprofiler
โข ์ฑ๋ฅ ํฅ์์ ๋ง๋ค์ด ๋ผ ์ ์๋ 20%๋ฅผ ํ๋ณํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
โข ์ฌ์ฉ์๊ฐ ๊ด์ฌ์ ๋๊ณ ์๋ ๋ฆฌ์์ค๋ฅผ ์ง์ ์ธก์ ํด์ฃผ๋ ๋๊ตฌ๊ฐ
ํ์ํ๋ค.
โข ์ํ ์ฑ๋ฅ ๋ฌธ์ ์ ๋์ฒํ๋ ์ต์ ์ ๊ธธ์ ๊ฐ๋ฅํ ๋ง์ ๋ฐ์ดํฐ๋ฅผ
์ฌ์ฉํด์ ์ํํธ์จ์ด๋ฅผ ํ๋กํ์ผ๋งํ๋ ๊ฒ์ด๋ค.
- 46.
ํญ๋ชฉ17: ์ง์ฐ ํ๊ฐ(lazyevaluation)
โข ์ง์ฐ(to be lazy): ์ด๋ค ์ผ์ ํ๊ธด ํ๋ ๊ทธ ์ผ์ ํ๋ ์ฝ๋์ ์ค
ํ์ ํผํ๋ ๋ฐฉ๋ฒ
โข ์ง์ฐ ํ๊ฐ: ์ง์ฐ ํ๊ฐ๋ฅผ ์ฌ์ฉํด์ ๋ง๋ C++ ํด๋์ค๋ ์ด๋ค ์ฒ
๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์ง์ง๋ก ํ์ํด์ง ๋๊ฐ์ง ๊ทธ ์ฒ๋ฆฌ๋ฅผ ๋ฏธ๋ฃฌ๋ค. ์ด๋ค ์ปดํจ
ํ
์์
์ ์ํํ๋ ๋ฐ์ ์์ด์ ๊ทธ ์์
๊ฒฐ๊ณผ๊ฐ ์ง์ง๋ก ์๊ตฌ๋
๊ธฐ ์ ์๋ ๊ทธ๊ฒ์ ํ์ง ์๋๋ค.
- 47.
- 48.
- 49.
- 50.
- 51.
mutable
โข const ๋ฉค๋ฒํจ์๋ โ๋ณดํต์โ ํด๋์ค ๋ฐ์ดํฐ ๋ฉค๋ฒ๋ฅผ ์์ ํ ์ ์
๋ค.
โข mutable๋ก ์ ์ธํ๋ฉด โ์ด ๋ฐ์ดํฐ๋ ์ด๋ค ๋ฉค๋ฒ ํจ์์์๋ ์์
์ด ๊ฐ๋ฅํจโ์ด๋ ๋ป์ด๋ค.
โข const ๋ฉค๋ฒ๋ ์์ ํ ์ ์๋ค.
- 52.
- 53.
์์น ๊ณ์ฐ์ ์์ด์์ง์ฐ ํ๊ฐ
โข ๋ ๊ฐ ์ฌ์ด์ ์์กด ๊ด๊ณ๋ฅผ ์ ์ฅํด์ผ ํ๋ค.
โข ๊ฐ๊ณผ ์์กด ๊ด๊ณ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ ํ์ํ๋ค.
โข ๋์
, ๋ณต์ฌ, ๋ง์
๊ฐ์ ์ฐ์ฐ์์ ๋ํ ์ค๋ฒ๋ก๋ฉ๋ ํ์ํ๋ค.
โข ์ด๋ฐ ์๊ณ ๋ก์์ด ๋ฐ๋ฅด์ง๋ง ์๋น๋์ ์ํ ์๊ฐ/๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ ์
์ฝ์ ํด์ค๋ค๋ ์ฅ์ ์ด ์๋ค.
- 54.
ํญ๋ชฉ18: ์์๋๋ ๊ณ์ฐ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ์ค๋น
โข ๊ณผ๋ ์ ํ ํ๊ฐ(over-eager evaluation)
โข ํ์ฌ ์๊ตฌ๋ ๊ฒ ์ด์ธ์ ๋ ๋ง์ ์์
์ ๋ฏธ๋ฆฌ ํด๋ ์ผ๋ก์จ ์ํํธ
์จ์ด์ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค.
- 55.
- 56.
์ด๋ฏธ ๊ณ์ฐ์ด ๋๋ฌ๊ณ ๋ค์ ์ฌ์ฉ๋ ๊ฒ ๊ฐ์ ๊ฐ์ ์บ์ฑํ๋ ๋ฐฉ๋ฒ
โข ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ง์ ๋ฐ๋ณตํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๊ฐ ์
๊ธด๋ค.
โข ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ด์ ์ ๋ฝ์ ๋ธ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํด๋๋ ํจ์
๋ฅผ ๋ง๋ ๋ค.
โข ์ด๋ฏธ ํ์ํ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ์บ์๋ฅผ ํตํด ๊ฐ์ ธ
์ค๋๋ก ๋ง๋ ๋ค.
- 57.
- 58.
๋ฏธ๋ฆฌ๊ฐ์ ธ์ค๊ธฐ(prefetching)
โข ๋์คํฌ ์ปจํ ๋กค๋ฌ๋๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋, ํ๋ก๊ทธ๋จ ์ชฝ
์์ ์์ฃผ ์ ์ ์๋ง ์๊ตฌํ์์๋ ๋ถ๊ตฌํ๊ณ ๋ธ๋ก ํ๋ ํน์ ์น
ํฐ ํ๋๋ฅผ ์์ฐฝ ์ฝ๋๋ค.
โข ์กฐ๊ธ์ฉ ์ฌ๋ฌ ๋ฒ ์ฝ๋ ๊ฒ๋ณด๋ค ํ ๋ฒ์ ๋ง์ด ์ฝ๋ ์ชฝ์ด ๋ ๋น ๋ฅด๋ค.
โข locality of reference
- 59.
- 60.
- 61.
- 62.
๊ณต๊ฐ๊ณผ ์๊ฐ์ ํจ๊ป์ ์ฝํ๊ธฐ ํ๋ค๋ค.
โข ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํ์ฐ์ ์ผ๋ก ๋์์ง๋ค.
โข ๊ณ์ฐ๊ฐ์ ์ฌ์์ฑํ๋๋ฐ์๋ ์๊ฐ์ด ๋ค์ง ์๋๋ค.
โข prefetching ๋ฐฉ๋ฒ์ ์ฐ๋ ค๋ฉด ๋ฏธ๋ฆฌ ๊ฐ์ ธ์จ ๋ช
๋ น์ด๋ ๋ฐ์ดํฐ๋ฅผ ์
์ฅํด ๋ ๊ณต๊ฐ์ด ํ์ํ๋ค.
โข ํ์ง๋ง ์ ์ฅํด ๋์ ๋ฐ์ดํฐ๋ ๋ช
๋ น์ด๋ฅผ ์ ๊ทผํ๋ ๋ฐ์ ํ์ํ
์๊ฐ์ ์ค์ด๋ ๋ค.
โข ๊ฒฐ๊ตญ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐ๋ฉด ์๋๊ฐ ๋นจ๋ผ์ง๋ค.
- 63.
- 64.
์ด๋ฆ ์๋ ์์๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๋ ์ํฉ
โข ํจ์ ํธ์ถ์ ์ฑ์ฌ์ํค๊ธฐ ์ํด ์์์ ํ์
๋ณํ์ด ์ ์ฉ๋ ๋
โข ํจ์๊ฐ ๊ฐ์ฒด๋ฅผ ๊ฐ์ผ๋ก ๋ฐํ(return by value)ํ ๋
- 65.
- 66.
์์๊ฐ์ฒด ์์ฑ์ ๋ฐฉ์งํ๋๋ฐฉ๋ฒ
โข ์์ ๊ฐ์ฒด๊ฐ ํจ์ ํธ์ถ ์ฑ์ฌ๋ฅผ ์ํด ์์ฑ๋์๋ค๊ฐ ์๋ฉธ๋๋ ์ผ
์ ํธ๋ฆฌํ๊ธด ํ์ง๋ง ๋ถํ์ํ ๋ญ๋น์ด๋ค.
โข ์ด๋ฅผ ๋ง๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง์ด๋ค.
โข ์ฝ๋๋ฅผ ๋ค์ ์ค๊ณํด์ ์ด๋ฐ ๋ณํ์ด ์ผ์ด๋์ง ์๊ฒ ํ๋ ๊ฒ
โข ํ์
๋ณํ์ด ๋ถํ์ํ๋๋ก ์ํํธ์จ์ด๋ฅผ ์์ ํ๋ ๊ฒ
- 67.
์์์ ํ์
๋ณํ์ด ์ด๋ฃจ์ด์ง๋๋
โข ๊ฐ์ฒด๊ฐ ๊ฐ์ผ๋ก ์ ๋ฌ๋ ๋ ํน์ ์์ ๊ฐ์ฒด ์ฐธ์กฐ์(reference-to-
const)ํ์
์ ๋งค๊ฐ๋ณ์๋ก ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋ ๋
โข ๋น์์ ๊ฐ์ฒด ์ฐธ์กฐ์(reference-to-non-const) ํ์
์ ๋งค๊ฐ๋ณ์
๋ก ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋ ๋์๋ ์์์ ํ์
๋ณํ์ด ์ผ์ด๋์ง ์๋๋ค.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
๋จ๋
ํํ ์ฐ์ฐ์์๋์
ํํ ์ฐ์ฐ์
โข ์ผ๋ฐ์ ์ผ๋ก ๋์
ํํ ์ฐ์ฐ์๋ ๋จ๋
ํํ ์ฐ์ฐ์๋ณด๋ค ํจ์จ์
์ด๋ค. ๋จ๋
ํํ ์ฐ์ฐ์๋ ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์
์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์๋ฉธํ๋ ๋น์ฉ์ด ์๋ชจ๋์ง๋ง, ๋์
ํํ ์ฐ
์ฐ์๋ ์ผ์ชฝ์ธ์์๋ค๊ฐ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์, ์ด ์ฐ์ฐ์
์ ๋ฐํ๊ฐ์ ๋ด์ ์์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋์ ํ์๊ฐ ์๋ค.
- 78.
๋จ๋
ํํ ์ฐ์ฐ์์๋์
ํํ ์ฐ์ฐ์
โข ๋์
ํํ ์ฐ์ฐ์์ ๋จ๋
ํํ ์ฐ์ฐ์๋ฅผ ๋์์ ์ ๊ณตํจ์ผ๋ก์จ
ํด๋์ค ์ฌ์ฉ์์๊ฒ ํจ์จ๊ณผ ํธ๋ฆฌ์ฑ ์ฌ์ด์์ ์ ํํ ์ ์๋ ๊ธฐ
ํ๋ฅผ ์ค๋ค.
- 79.
- 80.
- 81.
ํญ๋ชฉ23: ์ ์๋๋ฉด๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
โข ์ด์์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๊ณ , ๋น ๋ฅด๊ณ , ๊ฐ๋ ฅํ๊ณ , ์ ์ฐํ๊ณ , ํ์ฅ
๋ ๊ฐ๋ฅํ๊ณ , ์ง๊ด์ ์ด๊ณ , ์ด๋๋ ์ธ ์ ์๊ณ , ํ๋ซํผ ์ง์๋ ์ข
์์ผ ํ๊ณ , ์ฌ์ฉ์์ ์ ์ฝ์ ๋ํด ์์ ๋กญ๊ณ , ๋ฒ๊ทธ๋ ์์ด์ผ ํ๋ค.
โข ํ์ง๋ง ์ด๋ ์ด์์ผ ๋ฟ์ด๋ค.
โข ์๋, ๋ฒ์ฉ์ฑ, ๊ฒฌ๊ณ ์ฑ ๋ฑ ์ค์์ ๋ฌด์์ ์ฐ์ ์์๋ก ํ ๊ฒ์ธ์ง
์ ํํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌํํ๋ค.
โข ์ํํธ์จ์ด์์ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๊ต์ฒดํด๋ ์ฑ๋ฅ ํฅ์์
์ด๋ค๋ผ ์ ์๋ค.
- 82.
ํญ๋ชฉ24: ๊ฐ์ํจ์, ๋ค์ค์์ ๋ฑ๋ฑ ๋น์ฉ ํ์
โข virtual function
โข virtual table(vtbl): ๋ณดํต ํจ์ ํฌ์ธํฐ์ ๋ฐฐ์ด(์ด๋ค ์ปดํ์ผ๋ฌ๋ ๋ฐฐ
์ด ๋์ ์ linked list๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค). ์ด ํ
์ด๋ธ์ ๊ฐ์ ํจ
์๋ฅผ ์ ์ธํ๊ฑฐ๋ ์์๋ฐ์ ํด๋์ค์ ๋ฌด์กฐ๊ฑด ์๊ธฐ๊ณ , vtbl์ ๊ฐ
์์๋ ํด๋น ํด๋์ค์์ ์ ์ํ ๊ฐ์ ํจ์ ์ฝ๋์ ์์์ฃผ์์ด
๋ค.
- 83.
- 85.
๊ฐ์ํจ์์ ๋ค์ด๊ฐ๋ ๋น์ฉ
โข๊ฐ์ ํ
์ด๋ธ์ ๋ด๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค.
โข ์ด๋ค ํด๋์ค์ ๋ํด ๋ง๋ค์ด์ง๋ vtbl์ ํฌ๊ธฐ๋ ๊ทธ ํด๋์ค์ ์
์ธ๋ ๊ฐ์ํจ์(๊ธฐ๋ณธ ํด๋์ค์์ ์์๋ฐ๋ ๊ฒ๊น์ง ํฉํด์)์ ์
์ ๋น๋กํ๋ค.
โข ํ ํด๋์ค์ vtbl์ ํ๋ก๊ทธ๋จ ์ด๋ฏธ์ง ์์ ๋ฑ ํ๋๋ง ์์ด์ผ ํ
๋๋ฐ, ์ปดํ์ผ๋ฌ๋ vtbl์ ์ด๋์ ๋ ๊ฒ์ธ๊ฐ?
- 86.
๊ฐ์ ํ
์ด๋ธ ํฌ์ธํฐ
โขvptr
โข ๊ฐ์ ํจ์๋ฅผ ์ ์ธํ ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฐ์ฒด์๋ ๊ทธ ํด๋
์ค์ ๊ฐ์ ํจ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ์ดํฐ ๋ฉค๋ฒ๊ฐ ํ๋ ์จ๊ฒจ์ ธ ์๋ค.
โข vptr๋ ๋์ด๋ ๊ฐ์ฒด ๋ด์ ์์น๋ ์ปดํ์ผ๋ฌ๋ง ์๊ณ ์๋ค.
โข vptr์ ๊ฐ์ ํจ์์ ๋ค์ด๊ฐ๋ ๋ ๋ฒ์งธ ๋น์ฉ์ด๋ค.
โข ๊ฐ์ฒด๊ฐ ๋ณ๋ก ํฌ์ง ์์ ๊ฒฝ์ฐ vptr์ ๋น์ฉ์ ๋ง๋ง์น ์๋ค.
- 87.
์ํ ์ฑ๋ฅ์ ์ ํํ๋๊ฐ์ ํจ์ ๋น์ฉ
โข ์ธ๋ผ์ธ(inline): ์ปดํ์ผ ๋์ค์, ํธ์ถ ์์น์ ํธ์ถ๋๋ ํจ์์ ๋ชธ
์ฒด๋ฅผ ๋ผ์ด ๋ฃ๋๋ค.
โข ๊ฐ์(virtual): ํธ์ถํ ํจ์๋ฅผ ๋ฐํ์๊น์ง ๊ธฐ๋ค๋ ค ๊ฒฐ์ ํ๋ค.
โข ๊ฐ์ ํจ์๋ ํจ์์ ์ธ๋ผ์ธ ํจ๊ณผ๋ฅผ ํฌ๊ธฐํด์ผ ํ๋ค.
- 88.
- 89.
- 90.
- 91.
๋ฐํฐ์ ํ์
์๋ณ(RTTI)
โขruntime type identification
โข ์คํ ์ค์ ๊ฐ์ฒด์ ํด๋์ค์ ์ ๋ณด๋ฅผ ์์๋ผ ์ ์๊ฒ ํ๋ ๊ธฐ๋ฅ
โข ๊ทธ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋ ๊ณต๊ฐ์ด ํ์ํ๋ค.
โข C++์ ์ํ๋ฉด ๊ฐ์ฒด์ ๋์ ํ์
์ ์ ํํ ๋ฝ์๋ผ ์ ์์ผ๋ ค๋ฉด
๊ทธ ํ์
์ ๊ฐ์ ํจ์๊ฐ ์ต์ํ ํ๋ ์์ด์ผ ํ๋ค.
โข ์ด๋ ๊ฐ์ ํจ์ ํ
์ด๋ธ๊ณผ ์ ์ฌํ๋ค.
- 92.
- 93.