C++

ํด๋ž˜์Šค ๋ฉค๋ฒ„๋“ค๋„ static ๊ฐœ๋…์„ ์ ‘๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ํ•œ ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ์ด ๊ฐ์ฒด์˜ ์ˆ˜๋ฅผ ์–ป๊ณ  ์‹ถ์„๋•Œ์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. int Player::get_num_players() { return num_players;// num_players๋Š” Player ํด๋ž˜์Šค ๋‚ด์˜ static ์ •์ˆ˜ } ํ—ค๋” ํŒŒ์ผ์—์„œ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ , ํŠน์ • attribute๋ฅผ static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์„œ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ํ•ด๋‹น ์†์„ฑ์— ๋Œ€ํ•œ ์ดˆ๊ธฐํ™”๋Š” .cpp ํŒŒ์ผ์—์„œ ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค์˜ ์ •์˜ ๋‚ด์—์„œ ๋ฐ”๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. // Static class members // main.cpp #include #include "Player.h" using namespa..
C++์—์„œ๋Š” ํด๋ž˜์Šค์—๋„ ์ƒ์ˆ˜ (const) ๊ฐœ๋…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. const๊ฐ€ ์ ์šฉ๋œ ํด๋ž˜์Šค๋Š” ์†์„ฑ(attribute)๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์†์„ฑ์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? const Player villain {"Villain", 100, 55}; villain.set_name("Thanos");// COMPILER ERROR std::cout
this ํฌ์ธํ„ฐ๋Š” ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— *this ๋กœ ์ ‘๊ทผํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด์˜ ์ฃผ์†Œ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Š” ํด๋ž˜์Šค ๋ฒ”์œ„ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (ํŒŒ์ด์ฌ์„ ๊ณต๋ถ€ํ•ด๋ณด์…จ๋‹ค๋ฉด self ํ‚ค์›Œ๋“œ๋ฅผ ์ƒ๊ฐํ•˜์‹œ๋ฉด ์ดํ•ด๊ฐ€ ๋น ๋ฅผ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.) ์˜ˆ์‹œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. void Account::set_balance(double balance){ this->balance = balance; } ์ž…๋ ฅ ์ธ์ž๋ฅผ balance_input ์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๊ณ  balance = balance_input ์œผ๋กœ ํ•ด๋„ ๋˜์ง€๋งŒ, ์œ„์™€๊ฐ™์ด ๊ฐ์ฒด ์Šค์Šค๋กœ์˜ balance๋ฅผ this๋กœ ํ‘œ๊ธฐํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
INTRO int total {0}; total = 100 + 200; ์œ„ ์ฝ”๋“œ์—์„œ total์€ ํฌ์ธํ„ฐ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ ๊ฐ’, L-Value์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  total์— ํ• ๋‹น๋˜๋Š” 100+200 ์ˆ˜์‹์€ ํฌ์ธํ„ฐ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” R-Value์ž…๋‹ˆ๋‹ค. C++์—์„œ ์ด๋Ÿฐ ๊ฐ’๋“ค์€ ์ด๋ฆ„์—†๋Š” temp value๋กœ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅ๋˜์—ˆ๋‹ค๊ฐ€, total๊ณผ ๊ฐ™์€ ๊ฐ’์— ๋ณต์‚ฌ ์ €์žฅ๋˜๊ณ  ๋‚œ ๋’ค ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ™์€ ์ผ์ด temp value๋ฅผ temp object๋กœ๋งŒ ๋ฐ”๋€Œ์–ด์„œ ๊ฐ์ฒด์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ฅผ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด temporary object๊ฐ€ ๊ทธ๋งŒํผ ๋งŽ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๊ฐ์ฒด๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. Deep copy๋ฅผ ํ–‰ํ•˜๋ฉด ๋”์šฑ ๋งŽ์ด ์š”..
Chan Lee
'C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)