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

๋ชฉ๋ก2022/10 (117)

KoreanFoodie's Study

Effective C++ | ํ•ญ๋ชฉ 12 : ๊ฐ์ฒด์˜ ๋ชจ๋“  ๋ถ€๋ถ„์„ ๋น ์ง์—†์ด ๋ณต์‚ฌํ•˜์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:07
Effective C++ | ํ•ญ๋ชฉ 11 : operator= ์—์„œ๋Š” ์ž๊ธฐ๋Œ€์ž…์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋น ์ง€์ง€ ์•Š๋„๋ก ํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 11 : operator= ์—์„œ๋Š” ์ž๊ธฐ๋Œ€์ž…์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋น ์ง€์ง€ ์•Š๋„๋ก ํ•˜์ž ํ•ต์‹ฌ : 1. operator= ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ๊ทธ ์ž์‹ ์— ๋Œ€์ž…๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค์ž. ์›๋ณธ ๊ฐ์ฒด์™€ ๋ณต์‚ฌ๋Œ€์ƒ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ๋น„๊ตํ•ด๋„ ๋˜๊ณ , ๋ฌธ์žฅ์˜ ์ˆœ์„œ๋ฅผ ์ ์ ˆํžˆ ์กฐ์ •ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, ๋ณต์‚ฌ ํ›„ ๋งž๋ฐ”๊พธ๊ธฐ ๊ธฐ๋ฒ•์„ ์จ๋„ ๋œ๋‹ค. 2. ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ด ํ•จ์ˆ˜์— ๋„˜๊ฒจ์ง€๋Š” ๊ฐ์ฒด๋“ค์ด ์‚ฌ์‹ค ๊ฐ™์€ ๊ฐ์ฒด์ธ ๊ฒฝ์šฐ์— ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์ž. ์ด๋Ÿฐ ์ฝ”๋“œ๋Š” ์‚ฌ์‹ค ์ ๋ฒ•ํ•œ(legal) ์ฝ”๋“œ์ด๋‹ค. class Widget{ ...

Tutorials/C++ : Advanced 2022. 10. 25. 16:07
Effective C++ | ํ•ญ๋ชฉ 10 : ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” *this ์˜ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 10 : ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” *this ์˜ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•˜์ž ํ•ต์‹ฌ : ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” *this ์˜ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๋งŒ๋“ค์–ด๋ผ C++ ์˜ ๋Œ€์ž… ์—ฐ์‚ฐ์€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์‚ฌ์Šฌ์ฒ˜๋Ÿผ ์—ฎ์ผ ์ˆ˜ ์žˆ๋‹ค. int x, y, z; // ๋Œ€์ž…์€ ์šฐ์ธก ์—ฐ๊ด€(right-associative)์ด๋‹ค. x = y = z = 15; // ๋”ฐ๋ผ์„œ ์œ„ ์‹์€ ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค x = (y = (z = 15))); ๋Œ€์ž… ์—ฐ์‚ฐ์ด ์‚ฌ์Šฌ์ฒ˜๋Ÿผ ์—ฎ์ด๋ ค๋ฉด ๋Œ€์ž… ์—ฐ์‚ฐ์ž๊ฐ€ ์ขŒ๋ณ€ ์ธ์ž์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค(์ผ์ข…์˜ ๊ด€๋ก€[convention] ์ด๋‹ค). ์ด๋Š” += , -..

Tutorials/C++ : Advanced 2022. 10. 25. 16:06
Effective C++ | ํ•ญ๋ชฉ 9 : ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์†Œ๋ฉธ ๊ณผ์ • ์ค‘์—๋Š” ์ ˆ๋Œ€๋กœ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ๋ง์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 9 : ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์†Œ๋ฉธ ๊ณผ์ • ์ค‘์—๋Š” ์ ˆ๋Œ€๋กœ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ๋ง์ž ํ•ต์‹ฌ : ์ƒ์„ฑ์ž ๋ฐ ์†Œ๋ฉธ์ž ์•ˆ์—์„œ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ๋ง์ž! ๊ฐ€์ƒ ํ•จ์ˆ˜๋ผ๊ณ  ํ•ด๋„, ์ง€๊ธˆ ์‹คํ–‰ ์ค‘์ธ ์ƒ์„ฑ์ž๋‚˜ ์†Œ๋ฉธ์ž์— ํ•ด๋‹น๋˜๋Š” ํด๋ž˜์Šค์˜ ํŒŒ์ƒ ํด๋ž˜์Šค ์ชฝ์œผ๋กœ๋Š” ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๋Š”๋‹ค! ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์†Œ๋ฉธ ๊ณผ์ • ์ค‘์—๋Š” ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ ˆ๋Œ€๋กœ ์•ˆ ๋œ๋‹ค! ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. // ๋ชจ๋“  ๊ฑฐ๋ž˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํด๋ž˜์Šค class Transaction { public: Transaction(); // ํƒ€์ž…์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๋กœ๊ทธ ๊ธฐ๋ก์„ ๋งŒ๋“ ๋‹ค virtual void logTransactio..

Tutorials/C++ : Advanced 2022. 10. 25. 16:05
Effective C++ | ํ•ญ๋ชฉ 8 : ์˜ˆ์™ธ๊ฐ€ ์†Œ๋ฉธ์ž๋ฅผ ๋– ๋‚˜์ง€ ๋ชปํ•˜๋„๋ก ๋ถ™๋“ค์–ด ๋†“์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 8 : ์˜ˆ์™ธ๊ฐ€ ์†Œ๋ฉธ์ž๋ฅผ ๋– ๋‚˜์ง€ ๋ชปํ•˜๋„๋ก ๋ถ™๋“ค์–ด ๋†“์ž ํ•ต์‹ฌ : 1. ์†Œ๋ฉธ์ž์—์„œ๋Š” ์˜ˆ์™ธ๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. ๋งŒ์•ฝ ์†Œ๋ฉธ์ž ์•ˆ์—์„œ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด, ์–ด๋–ค ์˜ˆ์™ธ์ด๋“ ์ง€ ์†Œ๋ฉธ์ž์—์„œ ๋ชจ๋‘ ๋ฐ›์•„๋‚ธ ํ›„์— ์‚ผ์ผœ ๋ฒ„๋ฆฌ๋“ ์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ๋๋‚ด๋“ ์ง€ ํ•ด์•ผ ํ•œ๋‹ค. 2. ์–ด๋–ค ํด๋ž˜์Šค์˜ ์—ฐ์‚ฐ์ด ์ง„ํ–‰๋˜๋‹ค๊ฐ€ ๋˜์ง„ ์˜ˆ์™ธ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ˜์‘ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๋ณดํ†ต์˜ ํ•จ์ˆ˜(์ฆ‰, ์†Œ๋ฉธ์ž๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜) ์ด์–ด์•ผ ํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. class Widget { public: ... // ์ด ํ•จ์ˆ˜๋กœ๋ถ€ํ„ฐ ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:05
Effective C++ | ํ•ญ๋ชฉ 7 : ๋‹คํ˜•์„ฑ์„ ๊ฐ€์ง„ ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ๋Š” ์†Œ๋ฉธ์ž๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ฐ€์ƒ ์†Œ๋ฉธ์ž๋กœ ์„ ์–ธํ•˜์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:05
Effective C++ | ํ•ญ๋ชฉ 6 : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ํ•จ์ˆ˜๊ฐ€ ํ•„์š” ์—†์œผ๋ฉด ํ™•์‹คํžˆ ์ด๋“ค์˜ ์‚ฌ์šฉ์„ ๊ธˆํ•ด ๋ฒ„๋ฆฌ์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 6 : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ํ•จ์ˆ˜๊ฐ€ ํ•„์š” ์—†์œผ๋ฉด ํ™•์‹คํžˆ ์ด๋“ค์˜ ์‚ฌ์šฉ์„ ๊ธˆํ•ด ๋ฒ„๋ฆฌ์ž ํ•ต์‹ฌ : ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ž๋™์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ—ˆ์šฉ์น˜ ์•Š์œผ๋ ค๋ฉด, ๋Œ€์‘๋˜๋Š” ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ private ์œผ๋กœ ์„ ์–ธํ•œ ํ›„์— ๊ตฌํ˜„์€ ํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ๋‘์ž. Uncopyable ๊ณผ ๋น„์Šทํ•œ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋„ ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ถ€๋™์‚ฐ์„ ํŒ๋งคํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๊ฐ ์ž์‚ฐ์€ ์„ธ์ƒ์—์„œ ํ•˜๋‚˜๋ฐ–์— ์—†๋‹ค๋Š” ๊ฒƒ์„ ์ ์šฉํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ์ฆ‰, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ์ด ๋˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค! class HomeForSale {...}; .....

Tutorials/C++ : Advanced 2022. 10. 25. 16:04
Effective C++ | ํ•ญ๋ชฉ 5 : C++ ๊ฐ€ ์€๊ทผ์Šฌ์ฉ ๋งŒ๋“ค์–ด ํ˜ธ์ถœํ•ด ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜๋“ค์— ์ด‰๊ฐ์„ ์„ธ์šฐ์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 5 : C++ ๊ฐ€ ์€๊ทผ์Šฌ์ฉ ๋งŒ๋“ค์–ด ํ˜ธ์ถœํ•ด ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜๋“ค์— ์ด‰๊ฐ์„ ์„ธ์šฐ์ž ํ•ต์‹ฌ : ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž, ๋ณต์‚ฌ ์ƒ์„ฑ์ž, ๋ณต์‚ฌ ๋Œ€์ž… ์—ฐ์‚ฐ์ž, ์†Œ๋ฉธ์ž๋ฅผ ์•”์‹œ์ ์œผ๋กœ ๋งŒ๋“ค์–ด ๋†“์„ ์ˆ˜ ์žˆ๋‹ค ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž, ๋ณต์‚ฌ ์ƒ์„ฑ์ž, ๋ณต์‚ฌ ๋Œ€์ž… ์—ฐ์‚ฐ์ž, ์†Œ๋ฉธ์ž๋ฅผ ์•”์‹œ์ ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค. ์†Œ๋ฉธ์ž๋Š” ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ƒ์†ํ•œ ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์†Œ๋ฉธ์ž๊ฐ€ ๊ฐ€์ƒ ์†Œ๋ฉธ์ž๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์—ญ์‹œ ๋น„๊ฐ€์ƒ ์†Œ๋ฉธ์ž๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค(๋ฌผ๋ก  ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑ์ž๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค). ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:03
Effective C++ | ํ•ญ๋ชฉ 4 : ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:03
Effective C++ | ํ•ญ๋ชฉ 3 : ๋‚Œ์ƒˆ๋งŒ ๋ณด์ด๋ฉด const ๋ฅผ ๋“ค์ด๋Œ€ ๋ณด์ž!

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

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