OOP

Friend๋Š” private ํด๋ž˜์Šค ๋ฉค๋ฒ„์— ์ ‘๊ทผ๊ถŒํ•œ์ด ์žˆ๋Š” ํ•จ์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•ด๋‹น ํ•จ์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค๋Š” ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. (์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ž˜์Šค์˜ ์†์„ฑ ๋˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.) ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ, ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜ ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ํ˜น์€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ฉ”์†Œ๋“œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค์ผ ๊ฒฝ์šฐ, ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“  private ๋ฉค๋ฒ„๋“ค์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ํ•œ๋งˆ๋””๋กœ, friend๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง„, ํด๋ž˜์Šค ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. friend ๊ด€๊ณ„๋Š” friend ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•จ์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค์˜ ์ •์˜๋ฅผ ํ•  ๋•Œ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, friend ๊ด€๊ณ„๋Š” ์–‘๋ฐฉํ–ฅ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. A๊ฐ€ B์˜ friend๋ผ๊ณ ..
C++์—์„œ๋Š” ํด๋ž˜์Šค์—๋„ ์ƒ์ˆ˜ (const) ๊ฐœ๋…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. const๊ฐ€ ์ ์šฉ๋œ ํด๋ž˜์Šค๋Š” ์†์„ฑ(attribute)๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์†์„ฑ์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? const Player villain {"Villain", 100, 55}; villain.set_name("Thanos");// COMPILER ERROR std::cout
C++ Class ์˜ Copy Constructor์—๋Š” default copy constructor์ด ์‚ฌ์šฉํ•˜๋Š” Shallow Copying๊ณผ Deep Copying์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์–•์€ ๋ณต์‚ฌ, shallow copying์„ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ, ์–•์€ ๋ณต์‚ฌ๊ฐ€ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ฐ๊ฐ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Shallow Copying - ์–•์€ ๋ณต์‚ฌ Shallow copy๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” default copy constructor๊ฐ€ ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. Shallow copying์€ ๋ณต์‚ฌ ๋Œ€์ƒ์˜ ๊ฐ์ฒด์˜ ๋ชจ๋“  ์†์„ฑ์„ ์ง€๋‹Œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ์ฒด์—์„œ ์‚ฌ์šฉ๋  ๋•Œ ์ž…๋‹ˆ๋‹ค. ๋ณต์‚ฌ์˜ ๊ณผ์ •์—์„œ ํฌ์ธํ„ฐ๋Š” ๋ณต์‚ฌ๋˜์ง€๋งŒ, ..
๊ฐ์ฒด๋Š” ๊ฝค๋‚˜ ํฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Pass by value ๋ฐฉ๋ฒ• ํ˜น์€ return ๊ฐ’์œผ๋กœ ํŠน์ • ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๋Š” ํฐ ์šฉ๋Ÿ‰์„ ๋‚ญ๋น„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ, pass by reference ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. // main.cpp #include "Practice.h" #include using namespace std; int main() { Player ricky("Ricky", 100, 0); Player super_enemy = create_super_enemy(); Player ricky2 = another_hero(ricky); return 0; } // Practice.cpp #include "Practice.h" #include #include us..
Chan Lee
'OOP' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก