์ฌ๊ณผ๋๋ฌด class๊ฐ ์๊ณ
๊ทธ ์์ struct ์ฌ๊ณผ๊ฐ ์๋ค ์น๋ฉด
์ฌ๊ณผ๋๋ฌด๋ ์์ ๋ณ์๋ก ์ฌ๊ณผ๋ฅผ ๊ฐ์ง๊ณ
์ฌ๊ณผ๋ ์๊ธฐ ๋ณ์๋ก ์๊ธฐ๊ฐ ์ด๋ ค์๋ ์ฌ๊ณผ๋๋ฌด๋ฅผ ๊ฐ์ง๋
๊ทธ๋ฌ๋๊น ์๋ก ๋ฐ๋ผ๋ณด๋ ๊ทธ๋ฐ ๊ด๊ณ๋ฅผ ๋ง๋ค๊ณ ์ถ์๋ฐ
์ ์๋๋ค..
this ์๊พธ This๋ก ์๋๋ณํ ๋๋๊ฒ ํน๋ฐ๊ณ ๊ทธ๋ฌ๋ค;
์ด์ผ ๋ฐฉ๋ฒ ์์๊น?
๋ด๊ฐ ๋ญ ์๋ชป์ผ๋..?
๋ชฌ๊ฐ ์๋ชป๋จ
๋๊ธ๋ก ์ฝ๋๊ฐ ์๋ค์ด๊ฐ๋ค ใ
public List apple = new List(); private int appIeCounter = 0; public int getHowManyAppIe() return apple.Count; public void pIusAppIe() apple.Add(new AppIe(this));
์ด๋ฐ๋๋์ด ๋์ผํ ๋ฏ
appIeCounter์๊ฑด ํ์๊ฐ์๊ตฌ๋
์ค ๋๊ฒ ๊ตฌ์ฒด์ ์ผ๋ก ๊ตฌ์กฐ ์ง์ค์ ๊ณ ๋ง์
๊ตฌ์กฐ์ฒด์ ๋ํด ์ง๋ฌธํ๋ฉด์ Apple์ด ๊ตฌ์กฐ์ฒด๊ฐ ์๋๊ณ ํด๋์ค์ธ ๊ฒ๋ ๊ถ๊ธํ๊ณ ... ๋งจ ๋ฐ์ apple์ new Apple()๋ฃ์ผ๋ ค๋ ๊ฑด ํด๋์ค ์์ฒด๊ฐ ์๋๋ผ ๋ฉ์๋ (Start()๋ฑ)์ ๋ฃ์ด์ผ ํจ
์ ์ฒจ์ struct์๋๋ฐ ์๋ผ์ ์ด๊ฑฐ์ ๊ฑฐ ๋ฐ๊ฟ๋ณด๋ค๊ฐ class์ธ์ฑ๋ก ์ฌ๋ ค๋ฒ๋ ธ๋ค
๋ฉ์๋์ ๋ฃ์ผ๋๊น ์ ๋๋ค.. ๊ณ ๋ง์!!
๋ฉค๋ฒ ๋ณ์ ์ ์ธ์์ ์ด๊ธฐํ๋ฅผ ํ๋ ์ฝ๋๋ ์ปดํ์ผ ํ์์ ์ ์๋ ์ ์์ด์ผ ํจ. (์ด๊ฑด C++๋ ๋ง์ฐฌ๊ฐ์ง์) ์์ฑ์์์ ๋์ ํ์ญ์ผ
c++์์๋ ๋๊ฐ์ด Apple apple = new Apple(this)๋ฅผ ํ๋ฉด this๊ฐ ๋ญ๋๊ณ ๋ฐ์ง๊ฑฐ์. this๋ ์ธ์คํด์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ด๊ณ ์ธ์คํด์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ์ปดํ์ผ ํ์์ ์ ํด์ง๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ
๊ทธ๋ผ ์ ๊ฑฐ๋ฅผ ์ ๋ ๋ฃ๋๊ฒ ์๋๋ผ AppleTree ์์ฑ์์์ this ํ ๋นํด์ผํ๋ค๋ ์๋ฆฌ์ง? ๋ด๊ฐ ์ ๊ทผ์ ์๋ชปํ๋ค ๊ณ ๋ง์!
๋ฉค๋ฒ ๋ณ์๋ก ๋ฃ๋๋ค๋ฉด ๋ง์ด์ง. ๊ทผ๋ฐ ๋์ด ๋งํ ์คํ์ผ๋ก๋ ๋ฉค๋ฒ ๋ณ์๋ก ์๋๊ฒ ์๋ ๊ฒ ๊ฐ์์ plusApple์์ ํ๋ ์ด๋๊ฐ์์ ์ฃผ์ ํ๋ ๊ทธ์ ๋ง์ถฐ์ ์งค ๊ฒ ๊ฐ์
Static์ด ์๋์ด์ ๋จผ์ ์์ฑ๋์ง ์์์ ๊ทธ๋ฌ๋๊น ์๋๋๊ฒ์ด์ฃ - dc App