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

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

KoreanFoodie's Study

Effective C++ | ํ•ญ๋ชฉ 37 : ์–ด๋–ค ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋„ ์ƒ์†๋ฐ›์€ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์ ˆ๋Œ€๋กœ ์žฌ์ •์˜ํ•˜์ง€ ๋ง์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 37 : ์–ด๋–ค ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋„ ์ƒ์†๋ฐ›์€ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์ ˆ๋Œ€๋กœ ์žฌ์ •์˜ํ•˜์ง€ ๋ง์ž ํ•ต์‹ฌ : ์ƒ์†๋ฐ›์€ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์ ˆ๋Œ€๋กœ ์žฌ์ •์˜ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์ •์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋˜๋Š” ๋ฐ˜๋ฉด, ๊ฐ€์ƒ ํ•จ์ˆ˜(์˜ค๋ฒ„๋ผ์ด๋“œ ๊ฐ€๋Šฅํ•œ ์œ ์ผํ•œ ํ•จ์ˆ˜)๋Š” ๋™์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. class Shape { public: enum ShapeColor { Red, Green, Blue }; // ๋ชจ๋“  ๋„ํ˜•์€ ์ž๊ธฐ ์ž์‹ ์„ ๊ทธ๋ฆฌ๋Š” ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•จ virtual void draw(ShapeColor color = Red) ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:28
Effective C++ | ํ•ญ๋ชฉ 36 : ์ƒ์†๋ฐ›์€ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ์ ˆ๋Œ€ ๊ธˆ๋ฌผ!

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 36 : ์ƒ์†๋ฐ›์€ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ์ ˆ๋Œ€ ๊ธˆ๋ฌผ! ํ•ต์‹ฌ : ์ƒ์†๋ฐ›์€ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ์ผ์€ ์ ˆ๋Œ€๋กœ ํ•˜์ง€ ๋ง์ž ์‚ฌ์‹ค ์ด ํ•ญ๋ชฉ์€ ๋‹น์—ฐํ•˜๋‹ค๋ฉด ๋‹น์—ฐํ•œ๋ฐ, ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์„ ๋ชจ๋‘ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ ํŒŒ์ƒํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•œ๋‹ค๋Š”๊ฒŒ ์ด๋ก ์ ์œผ๋กœ๋„ ๋ชจ์ˆœ๋˜๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๋ฅผ ๋ฌผ๋ ค๋ฐ›์€ ํด๋ž˜์Šค๋Š” ํ•ด๋‹น ๋น„๊ฐ€์ƒ ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค์—์„œ ์˜๋„ํ•œ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜์˜ ๋™์ž‘์„ ๊ทธ๋Œ€๋กœ ์žฌํ˜„ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค! ์˜ˆ์‹œ๋ฅผ ํ•˜๋‚˜ ๋ณด์ž. class B { public: void m..

Tutorials/C++ : Advanced 2022. 10. 25. 16:28
Effective C++ | ํ•ญ๋ชฉ 35 : ๊ฐ€์ƒ ํ•จ์ˆ˜ ๋Œ€์‹  ์“ธ ๊ฒƒ๋“ค๋„ ์ƒ๊ฐํ•ด ๋‘๋Š” ์ž์„ธ๋ฅผ ์‹œ์‹œ๋•Œ๋•Œ๋กœ ๊ธธ๋Ÿฌ ๋‘์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:28
Effective C++ | ํ•ญ๋ชฉ 34 : ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์†๊ณผ ๊ตฌํ˜„ ์ƒ์†์˜ ์ฐจ์ด๋ฅผ ์ œ๋Œ€๋กœ ํŒŒ์•…ํ•˜๊ณ  ๊ตฌ๋ณ„ํ•˜์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:27
Effective C++ | ํ•ญ๋ชฉ 33 : ์ƒ์†๋œ ์ด๋ฆ„์„ ์ˆจ๊ธฐ๋Š” ์ผ์€ ํ”ผํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 33 : ์ƒ์†๋œ ์ด๋ฆ„์„ ์ˆจ๊ธฐ๋Š” ์ผ์€ ํ”ผํ•˜์ž ํ•ต์‹ฌ : 1. ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์€ ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ๊ฐ€๋ฆฐ๋‹ค. public ์ƒ์†์—์„œ๋Š” ์ด๋Ÿฐ ์ด๋ฆ„ ๊ฐ€๋ฆผ ํ˜„์ƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š๋‹ค. 2. ๊ฐ€๋ ค์ง„ ์ด๋ฆ„์„ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, using ์„ ์–ธ ํ˜น์€ ์ „๋‹ฌ ํ•จ์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž. class Base { private: int x; public: virtual void mf1() = 0; virtual void mf1(int); virtual void mf2(); void mf3(); void mf3(double); ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:27
Effective C++ | ํ•ญ๋ชฉ 32 : public ์ƒ์† ๋ชจํ˜•์€ ๋ฐ˜๋“œ์‹œ "is-a(...๋Š” ...์˜ ์ผ์ข…์ด๋‹ค)"๋ฅผ ๋”ฐ๋ฅด๋„๋ก ๋งŒ๋“ค์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 32 : public ์ƒ์† ๋ชจํ˜•์€ ๋ฐ˜๋“œ์‹œ "is-a(...๋Š” ...์˜ ์ผ์ข…์ด๋‹ค)"๋ฅผ ๋”ฐ๋ฅด๋„๋ก ๋งŒ๋“ค์ž ํ•ต์‹ฌ : public ์ƒ์†์˜ ์˜๋ฏธ๋Š” "is-a(...๋Š” ...์˜ ์ผ์ข…)"์ด๋‹ค. ๊ธฐ๋ณธ ํด๋ž˜์Šค์— ์ ์šฉ๋˜๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค์ด ํŒŒ์ƒ ํด๋ž˜์Šค์— ๊ทธ๋Œ€๋กœ ์ ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ชจ๋“  ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐ์ฒด๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค ๊ฐ์ฒด์˜ ์ผ์ข…์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์–ด๋–ค Base ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ Derived ํด๋ž˜์Šค๊ฐ€ public ์ƒ์†์„ ๋ฐ›์•˜๋‹ค๋ฉด, Derived ํด๋ž˜์Šค๋Š” Base ํด๋ž˜์Šค๋ณด๋‹ค ๋” ํŠน์ˆ˜ํ•œ ๊ฐœ๋…์„ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋œ๋‹ค. ์‚ฌ์šฉ์ฒ˜๊ฐ€ ์ œํ•œ๋œ๋‹ค๊ณ  ๋ด๋„ ์ข‹๋‹ค. public ์ƒ์†์ด ์‹ ๊ธฐ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:26
Effective C++ | ํ•ญ๋ชฉ 31 : ํŒŒ์ผ ์‚ฌ์ด์˜ ์ปดํŒŒ์ผ ์˜์กด์„ฑ์„ ์ตœ๋Œ€๋กœ ์ค„์ด์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:26
Effective C++ | ํ•ญ๋ชฉ 30 : ์ธ๋ผ์ธ ํ•จ์ˆ˜๋Š” ๋ฏธ์ฃผ์•Œ๊ณ ์ฃผ์•Œ ๋”ฐ์ ธ์„œ ์ดํ•ดํ•ด ๋‘์ž

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:26
Effective C++ | ํ•ญ๋ชฉ 29 : ์˜ˆ์™ธ ์•ˆ์ „์„ฑ์ด ํ™•๋ณด๋˜๋Š” ๊ทธ๋‚  ์œ„ํ•ด ์‹ธ์šฐ๊ณ  ๋˜ ์‹ธ์šฐ์ž!

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

Tutorials/C++ : Advanced 2022. 10. 25. 16:25
Effective C++ | ํ•ญ๋ชฉ 28 : ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ 'ํ•ธ๋“ค'์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋˜๋„๋ก ํ”ผํ•˜์ž

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 28 : ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ 'ํ•ธ๋“ค'์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋˜๋„๋ก ํ”ผํ•˜์ž ํ•ต์‹ฌ : ์–ด๋–ค ๊ฐ์ฒด์˜ ๋‚ด๋ถ€์š”์†Œ์— ๋Œ€ํ•œ ํ•ธ๋“ค(์ฐธ์กฐ์ž, ํฌ์ธํ„ฐ, ๋ฐ˜๋ณต์ž) ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋˜๋„๋ก ํ”ผํ•˜์ž. ์บก์Šํ™” ์ •๋„๋ฅผ ๋†’์ด๊ณ , ์ƒ์ˆ˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ๊ฐ์ฒด์˜ ์ƒ์ˆ˜์„ฑ์„ ์œ ์ง€ํ•œ ์ฑ„๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉฐ, ๋ฌดํšจ์ฐธ์กฐ ํ•ธ๋“ค์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐ์ž๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. clas Point { public: Point(int x, int y); ... void setX(int newVal); voi..

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