Friend๋ private ํด๋์ค ๋ฉค๋ฒ์ ์ ๊ทผ๊ถํ์ด ์๋ ํจ์ ๋๋ ํด๋์ค์
๋๋ค. ์ฌ๊ธฐ์ ํด๋น ํจ์ ๋๋ ํด๋์ค๋ ์ ๊ทผํ๊ณ ์ ํ๋ ํด๋์ค์ ๋ฉค๋ฒ๊ฐ ์๋๋๋ค. (์ ๊ทผํ๊ณ ์ ํ๋ ํด๋์ค์ ์์ฑ ๋๋ ๋ฉ์๋๊ฐ ์๋๋๋ค.) ํจ์์ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ธ ํจ์ ์ผ ์๋ ์๊ณ , ํน์ ๋ค๋ฅธ ํด๋์ค์ ๋ฉค๋ฒ ๋ฉ์๋์ผ ์ ์์ต๋๋ค. ํด๋์ค์ผ ๊ฒฝ์ฐ, ์ ๊ทผํ๊ณ ์ ํ๋ ํด๋์ค์ ๋ชจ๋ private ๋ฉค๋ฒ๋ค์ ๋ํ ์ ๊ทผ ๊ถํ์ด ์๋ ํด๋์ค์
๋๋ค. ํ๋ง๋๋ก, friend๋ ํด๋์ค์ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ ๊ถํ์ ๊ฐ์ง, ํด๋์ค ๋ฉค๋ฒ๊ฐ ์๋ ์ธ๋ถ ํจ์ ๋๋ ํด๋์ค์
๋๋ค. friend ๊ด๊ณ๋ friend ํค์๋๋ฅผ ์ฌ์ฉํด์ ํจ์ ๋๋ ํด๋์ค์ ์ ์๋ฅผ ํ ๋ ๋ช
์ํด์ผ ํฉ๋๋ค. ๋ํ, friend ๊ด๊ณ๋ ์๋ฐฉํฅ์ฑ์ด ์์ต๋๋ค. A๊ฐ B์ friend๋ผ๊ณ ..
C++/๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (OOP)
ํด๋์ค ๋ฉค๋ฒ๋ค๋ 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๋ก ํ๊ธฐํ์ฌ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ๋ ์ ์ฉํฉ๋๋ค.