Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1099)

KoreanFoodie's Study

Effective C++ | ํ•ญ๋ชฉ 24 : ํƒ€์ž… ๋ณ€ํ™˜์ด ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค๋ฉด ๋น„๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 24 : ํƒ€์ž… ๋ณ€ํ™˜์ด ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค๋ฉด ๋น„๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜์ž ํ•ต์‹ฌ : ์–ด๋–ค ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐ€๋Š” ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜(this ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋„ ํฌํ•จํ•ด์„œ) ์— ๋Œ€ํ•ด ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, ๊ทธ ํ•จ์ˆ˜๋Š” ๋น„๋ฉค๋ฒ„์ด์–ด์•ผ ํ•œ๋‹ค. ์œ ๋ฆฌ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜๊ณ , ๊ณฑ์…‰ ์—ฐ์‚ฐ์„ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. class Rational { public: Rational(int numerator = 0, int denominator = 1); int numerator() const; int denominator() const;..

Tutorials/C++ : Advanced 2022. 10. 25. 16:15
Effective C++ | ํ•ญ๋ชฉ 23 : ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ณด๋‹ค๋Š” ๋น„๋ฉค๋ฒ„ ๋น„ํ”„๋ Œ๋“œ ํ•จ์ˆ˜์™€ ๋” ๊ฐ€๊นŒ์›Œ์ง€์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 23 : ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ณด๋‹ค๋Š” ๋น„๋ฉค๋ฒ„ ๋น„ํ”„๋ Œ๋“œ ํ•จ์ˆ˜์™€ ๋” ๊ฐ€๊นŒ์›Œ์ง€์ž ํ•ต์‹ฌ : ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ณด๋‹ค๋Š” ๋น„๋ฉค๋ฒ„ ๋น„ํ”„๋ Œ๋“œ ํ•จ์ˆ˜๋ฅผ ์ž์ฃผ ์“ฐ์ž. ์บก์Šํ™” ์ •๋„๊ฐ€ ๋†’์•„์ง€๊ณ , ํŒจํ‚ค์ง• ์œ ์—ฐ์„ฑ๋„ ์ปค์ง€๋ฉฐ, ๊ธฐ๋Šฅ์ ์ธ ํ™•์žฅ์„ฑ๋„ ๋Š˜์–ด๋‚œ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์บ์‹œ๋ฅผ ๋น„์šฐ๋Š” ํ•จ์ˆ˜, URL ๊ธฐ๋ก์„ ์—†์• ๋Š” ํ•จ์ˆ˜, ์ฟ ํ‚ค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์„ธ ๋™์ž‘์„ ๋™์‹œ์— ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ, ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ, ๋น„๋ฉค๋ฒ„ ํ•จ์ˆ˜๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์„๊นŒ? class WebBrowser { public: void clearCache(); void clearHist..

Tutorials/C++ : Advanced 2022. 10. 25. 16:14
Effective C++ | ํ•ญ๋ชฉ 22 : ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๊ฐ€ ์„ ์–ธ๋  ๊ณณ์€ private ์˜์—ญ์ž„์„ ๋ช…์‹ฌํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 22 : ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๊ฐ€ ์„ ์–ธ๋  ๊ณณ์€ private ์˜์—ญ์ž„์„ ๋ช…์‹ฌํ•˜์ž ํ•ต์‹ฌ : 1. ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋Š” private ๋ฉค๋ฒ„๋กœ ์„ ์–ธํ•˜์ž ์ด๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค ์ œ์ž‘์ž๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ํ†ต๋กœ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ , ํ•„์š”์— ๋”ฐ๋ผ์„œ๋Š” ์„ธ๋ฐ€ํ•œ ์ ‘๊ทผ ์ œ์–ด๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํด๋ž˜์Šค์˜ ๋ถˆ๋ณ€์†์„ฑ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ์•„๋‹ˆ๋ผ, ๋‚ด๋ถ€ ๊ตฌํ˜„์˜ ์œตํ†ต์„ฑ๋„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. protected ๋Š” public ๋ณด๋‹ค ๋” ๋งŽ์ด '๋ณดํ˜ธ' ๋ฐ›๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ ˆ๋Œ€๋กœ ์•„๋‹ˆ๋‹ค. ๋จผ์ €, ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„์— public ๋Œ€์‹  private ์„ ์จ์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ์•Œ์•„๋ณด์ž. ๋ฌธ๋ฒ•์  ์ผ๊ด€..

Tutorials/C++ : Advanced 2022. 10. 25. 16:13
Effective C++ | ํ•ญ๋ชฉ 21 : ํ•จ์ˆ˜์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์— ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๊ณ  ๋“ค์ง€ ๋ง์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 21 : ํ•จ์ˆ˜์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์— ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๊ณ  ๋“ค์ง€ ๋ง์ž ํ•ต์‹ฌ : 1. ์ง€์—ญ ์Šคํƒ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ผ, ํ˜น์€ ํž™์— ํ• ๋‹น๋œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ผ, ๋˜๋Š” ์ง€์—ญ ์ •์  ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ผ์€ ๊ทธ๋Ÿฐ ๊ฐ์ฒด๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ ํ•„์š”ํ•ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ์ ˆ๋Œ€๋กœ ํ•˜์ง€ ๋ง์ž(ํ•ญ๋ชฉ 4๋ฅผ ๋ณด๋ฉด ๋‹จ์ผ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ์ ์ ˆํ•œ ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค) ์œ ๋ฆฌ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์˜ ๊ณฑ์…ˆ operator ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๋ฉด, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค! // 1. result ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:13
Effective C++ | ํ•ญ๋ชฉ 20 : '๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ' ๋ณด๋‹ค๋Š” '์ƒ์ˆ˜๊ฐ์ฒด ์ฐธ์กฐ์ž์— ์˜ํ•œ ์ „๋‹ฌ' ๋ฐฉ์‹์„ ํƒํ•˜๋Š” ํŽธ์ด ๋Œ€๊ฐœ ๋‚ซ๋‹ค

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 20 : '๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ' ๋ณด๋‹ค๋Š” '์ƒ์ˆ˜๊ฐ์ฒด ์ฐธ์กฐ์ž์— ์˜ํ•œ ์ „๋‹ฌ' ๋ฐฉ์‹์„ ํƒํ•˜๋Š” ํŽธ์ด ๋Œ€๊ฐœ ๋‚ซ๋‹ค ํ•ต์‹ฌ : 1. '๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ' ๋ณด๋‹ค๋Š” '์ƒ์ˆ˜ ๊ฐ์ฒด ์ฐธ์กฐ์ž์— ์˜ํ•œ ์ „๋‹ฌ' ์„ ์„ ํ˜ธํ•˜์ž. ๋Œ€์ฒด์ ์œผ๋กœ ํšจ์œจ์ ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ณต์‚ฌ์†์‹ค ๋ฌธ์ œ๊นŒ์ง€ ๋ง‰์•„์ค€๋‹ค. 2. ์ด๋ฒˆ ํ•ญ๋ชฉ์—์„œ ๋‹ค๋ฃฌ ๋ฒ•์น™์€ ๊ธฐ๋ณธ์ œ๊ณต ํƒ€์ž… ๋ฐ STL ๋ฐ˜๋ณต์ž, ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜ ๊ฐ์ฒด ํƒ€์ž…์—๋Š” ๋งž์ง€ ์•Š๋Š”๋‹ค. ์ด๋“ค์— ๋Œ€ํ•ด์„œ๋Š” '๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ' ์ด ๋” ์ ์ ˆํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ C++ ๋Š” ํ•จ์ˆ˜๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›๊ฑฐ๋‚˜ ์ „๋‹ฌํ•  ๋•Œ '๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ(pass-by-value)' ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Ÿฌํ•œ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:12
Effective C++ | ํ•ญ๋ชฉ 19 : ํด๋ž˜์Šค ์„ค๊ณ„๋Š” ํƒ€์ž… ์„ค๊ณ„์™€ ๋˜‘๊ฐ™์ด ์ทจ๊ธ‰ํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 19 : ํด๋ž˜์Šค ์„ค๊ณ„๋Š” ํƒ€์ž… ์„ค๊ณ„์™€ ๋˜‘๊ฐ™์ด ์ทจ๊ธ‰ํ•˜์ž ํ•ต์‹ฌ : ํด๋ž˜์Šค ์„ค๊ณ„๋Š” ํƒ€์ž… ์„ค๊ณ„์ด๋‹ค. ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜ํ•˜๊ธฐ ์ „์—, ์ด๋ฒˆ ํ•ญ๋ชฉ์— ๋‚˜์˜จ ๋ชจ๋“  ๊ณ ๋ ค์‚ฌํ•ญ์„ ๋น ์ง์—†์ด ์ ๊ฒ€ํ•ด ๋ณด์ž! C++ ์—์„œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ํ•˜๋‚˜ ์ •์˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์†Œ๋“ค์„ ์ˆ™๊ณ ํ•œ ํ›„ ๋งŒ๋“ค์–ด ๋ณด์ž! ์ƒˆ๋กœ ์ •์˜ํ•œ ํƒ€์ž…์˜ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์†Œ๋ฉธ์€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š”๊ฐ€? (operator new, operator delete[] ๋“ฑ๋“ฑ) ๊ฐ์ฒด ์ดˆ๊ธฐํ™”๋Š” ๊ฐ์ฒด ๋Œ€์ž…๊ณผ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์•ผ ํ•˜๋Š”๊ฐ€? ์ƒˆ๋กœ์šด ํƒ€์ž…์œผ๋กœ ๋งŒ๋“  ๊ฐ์ฒด๊ฐ€ ๊ฐ’์— ์˜ํ•ด..

Tutorials/C++ : Advanced 2022. 10. 25. 16:12
Effective C++ | ํ•ญ๋ชฉ 18 : ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„๋Š” ์ œ๋Œ€๋กœ ์“ฐ๊ธฐ์—” ์‰ฝ๊ฒŒ, ์—‰ํ„ฐ๋ฆฌ๋กœ ์“ฐ๊ธฐ์—” ์–ด๋ ต๊ฒŒ ํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 18 : ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„๋Š” ์ œ๋Œ€๋กœ ์“ฐ๊ธฐ์—” ์‰ฝ๊ฒŒ, ์—‰ํ„ฐ๋ฆฌ๋กœ ์“ฐ๊ธฐ์—” ์–ด๋ ต๊ฒŒ ํ•˜์ž ํ•ต์‹ฌ : 1. ์ข‹์€ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ œ๋Œ€๋กœ ์“ฐ๊ธฐ์— ์‰ฌ์šฐ๋ฉฐ ์—‰ํ„ฐ๋ฆฌ๋กœ ์“ฐ๊ธฐ์— ์–ด๋ ต๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์ด ํŠน์„ฑ์„ ์ง€๋‹ ์ˆ˜ ์žˆ๋„๋ก ๊ณ ๋ฏผํ•˜๊ณ  ๋˜ ๊ณ ๋ฏผํ•˜์ž 2. ์ธํ„ฐํŽ˜์ด์Šค์˜ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์„ ์ด๋„๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์ด์˜ ์ผ๊ด€์„ฑ ์žก์•„์ฃผ๊ธฐ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ์ œ๊ณต ํƒ€์ž…๊ณผ์˜ ๋™์ž‘ ํ˜ธํ™˜์„ฑ ์œ ์ง€ํ•˜๊ธฐ๊ฐ€ ์žˆ๋‹ค. 3. ์‚ฌ์šฉ์ž์˜ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ƒˆ๋กœ์šด ํƒ€์ž… ๋งŒ๋“ค๊ธฐ, ํƒ€์ž…์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์ œํ•œํ•˜๊ธฐ, ๊ฐ์ฒด์˜ ๊ฐ’์— ๋Œ€ํ•ด ์ œ์•ฝ ๊ฑธ๊ธฐ, ์ž์› ๊ด€๋ฆฌ ์ž‘์—…์„ ์‚ฌ์šฉ์ž ์ฑ…์ž„์œผ๋กœ ๋†“์ง€ ์•Š๊ธฐ๊ฐ€ ์žˆ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:12
Effective C++ | ํ•ญ๋ชฉ 17 : new ๋กœ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์— ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋ณ„๋„์˜ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 17 : new ๋กœ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ์— ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋ณ„๋„์˜ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค์ž ํ•ต์‹ฌ : new ๋กœ ์ƒ์ƒํ•œ ๊ฐ์ฒด๋ฅผ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋กœ ๋„ฃ๋Š” ์ฝ”๋“œ๋Š” ๋ณ„๋„์˜ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค์ž. ์ด๊ฒƒ์ด ์•ˆ ๋˜์–ด ์žˆ์œผ๋ฉด, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒ๋  ๋•Œ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ํž˜๋“  ์ž์› ๋ˆ„์ถœ์ด ์ดˆ๋ž˜๋  ์ˆ˜ ์žˆ๋‹ค! ์ฒ˜๋ฆฌ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜ ์žˆ๊ณ , ๋™์ ์œผ๋กœ ํ• ๋‹นํ•œ Widget ๊ฐ์ฒด์— ๋Œ€ํ•ด ์–ด๋–ค ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋ฅผ ์ ์šฉํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. int priority(); void processWidget(std::shared_ptr pw, int prio..

Tutorials/C++ : Advanced 2022. 10. 25. 16:11
Effective C++ | ํ•ญ๋ชฉ 16 : new ๋ฐ delete ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํ˜•ํƒœ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋งž์ถ”์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 16 : new ๋ฐ delete ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํ˜•ํƒœ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋งž์ถ”์ž ํ•ต์‹ฌ : new ํ‘œํ˜„์‹์— [ ] ๋ฅผ ์ผ์œผ๋ฉด, ๋Œ€์‘๋˜๋Š” delete ํ‘œํ˜„์‹์—๋„ [ ] ๋ฅผ ์จ์•ผ ํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, new ํ‘œํ˜„์‹์— [ ] ๋ฅผ ์•ˆ ์ผ์œผ๋ฉด, ๋Œ€์‘๋˜๋Š” delete ํ‘œํ˜„์‹์—๋„ [ ] ๋ฅผ ์“ฐ์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ์–ด๋–ค ๋ถ€๋ถ„์ด ์ž˜๋ชป๋˜์—ˆ์„๊นŒ? std::string *stringArray = new std::string[100]; ... delete stringArray; stringArray ๋Š” ๋ฐฐ์—ด์ด๋ฏ€๋กœ, delete[] ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด์˜ ๊ฐ์ฒด ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:10
Effective C++ | ํ•ญ๋ชฉ 15 : ์ž์› ๊ด€๋ฆฌ ํด๋ž˜์Šค์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ์ž์›์€ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 15 : ์ž์› ๊ด€๋ฆฌ ํด๋ž˜์Šค์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ์ž์›์€ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž ํ•ต์‹ฌ : 1. ์‹ค์ œ ์ž์›์„ ์ง์ ‘ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ๊ธฐ์กด API ๋“ค๋„ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์—, RAII ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๊ทธ ํด๋ž˜์Šค๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž์›์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์—ด์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. 2. ์ž์› ์ ‘๊ทผ์€ ๋ช…์‹œ์  ๋ณ€ํ™˜ ํ˜น์€ ์•”์‹œ์  ๋ณ€ํ™˜์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์•ˆ์ „์„ฑ๋งŒ ๋”ฐ์ง€๋ฉด ๋ช…์‹œ์  ๋ณ€ํ™˜์ด ๋Œ€์ฒด์ ์œผ๋กœ ๋” ๋‚ซ์ง€๋งŒ, ๊ณ ๊ฐ ํŽธ์˜์„ฑ์„ ๋†“๊ณ  ๋ณด๋ฉด ์•”์‹œ์  ๋ณ€ํ™˜์ด ๊ดœ์ฐฎ๋‹ค. ๋‹ค์Œ์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ, RAII ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๊ทธ ๊ฐ์ œ๊ฐ€ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ์‹ค์ œ ์ž์›์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์ƒ๊ธด๋‹ค. ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:10