C++ Class ์ Copy Constructor์๋ default copy constructor์ด ์ฌ์ฉํ๋ Shallow Copying๊ณผ Deep Copying์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ์์ ๋ณต์ฌ, shallow copying์ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ง๋ง, ์์ ๋ณต์ฌ๊ฐ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ๋๊ฐ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ๊ฐ๊ฐ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. Shallow Copying - ์์ ๋ณต์ฌ Shallow copy๋ ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑํด์ฃผ๋ default copy constructor๊ฐ ํํ๋ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํฉ๋๋ค. Shallow copying์ ๋ณต์ฌ ๋์์ ๊ฐ์ฒด์ ๋ชจ๋ ์์ฑ์ ์ง๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ ํฌ์ธํฐ๊ฐ ๊ฐ์ฒด์์ ์ฌ์ฉ๋ ๋ ์
๋๋ค. ๋ณต์ฌ์ ๊ณผ์ ์์ ํฌ์ธํฐ๋ ๋ณต์ฌ๋์ง๋ง, ..
C++
ํด๋์ค๋ฅผ ์ ์ธํ ๋, ๋ด๋ถ์์ public: ํค์๋๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋จ๋ ๊ฒฝํ์ด ์์ ๊ฒ๋๋ค. ์ด๊ฒ์ ํด๋์ค์์ ๋งค์ฐ ์ค์ํ ์ ๊ทผ ์ ํ์(Access Modifier) ๋ผ๋ ๊ฐ๋
์ ํด๋นํฉ๋๋ค. C++ ์ ๊ทผ ์ ํ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก 3๊ฐ์ง์ ์ ๊ทผ ์ ํ์๊ฐ ์กด์ฌํฉ๋๋ค. ๊ฐ๊ฐ public, private, protcted ์
๋๋ค. public ์ ๊ทผ ์ ํ์๋ ์ฝ๋ ๋ด์ ๋ชจ๋ ๊ณณ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. private ์ ๊ทผ ์ ํ์๋ ๋ค๋ฅธ ํด๋์ค ๋ฉค๋ฒ๋ค์ด๋ friend๋ค์๊ฒ๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. protected ์ ๊ทผ ์ ํ์๋ ์์(inheritance)์ ํจ๊ป ์ฌ์ฉ๋๋ ์ ๊ทผ ์ ํ์์
๋๋ค. syntax๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. class Class_Name{ public: // private: // prote..
๊ฐ์ฒด๋ ๊ฝค๋ ํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๊ตฌํ๊ธฐ ๋๋ฌธ์, 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..
cin.ignore()์ ์
๋ ฅ ๋ฒํผ๋ฅผ ๋น์ฐ๋ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, cin์ผ๋ก 1000 5000์ ๋ฐ์์ ๋ ๋ค์ cin์ ์
๋ ฅ์ ํ์ง๋ ์์๋๋ฐ 5000 ๋ค์ด๊ฐ๋๋ค. ๋ฒํผ์ 5000 ๊ฐ์ด ๋จ์์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ด ๋ cin.ignore()์ผ๋ก ๋ฒํผ๋ฅผ ๋น์ฐ๊ณ ๋์ ๋ค์ ์
๋ ฅ์ ๋ฐ์ผ๋ฉด ์ด๋ฐ ํ์์ด ๋ฐฉ์ง๋ฉ๋๋ค.