Explicit Initialization ¶
์ธ์คํด์ค ๋ณ์๋ค์ ์ด๋ป๊ฒ ๋ํดํธ๊ฐ์ผ๋ก ์ด๊ธฐํ์์ผ์ฃผ๋๊ฐ?
์ด๊ธฐํ์ ๋ํด์๋ ๋ฑํ ์ ํด์ง ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค.(์ํฉ์ ๋ฐ๋ผ ํ์ผํด์ ์ฐ๋ผ๋ ๋ง) ์ด ํจํด์ ์ ์ฐ์ฑ๋ณด๋ค๋ ๊ฐ๋
์ฑ์ ์ค์ํ๋ค. ๋ชจ๋ ์ด๊ธฐํ๋ฅผ ํ๋์ ๋ฉ์๋์ ๋๋ ค๋ฃ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ ์ฐ์ฑ์ ๋จ์ด์ง ์ ๋ฐ์ ์๋ค. ๋ณ์ ํ๋ ์ถ๊ฐํ์๋ฉด ExplicitInitialization ๋ฉ์๋๋ฅผ ์์ ํด์ผ๋ง ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ExplicitInitialization์ LazyInitialization๋ณด๋ค ๋น์ฉ์ด ๋ง์ด ๋ ๋ค. ๋ชจ๋ ๋ณ์๋ฅผ ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋ ์ด๊ธฐํ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ชจ๋ ๋ณ์๋ค์ ๋ช
์์ ์ผ๋ก ์ค์ ํด์ฃผ๋ initialize๋ฉ์๋๋ฅผ ๊ตฌํํ๋ผ. new๋ฉ์ธ์ง๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์๋ก์ด ์ธ์คํด์ค์ ๋ง๊ฒ ํ๋ผ.
1000 ๋ฐ๋ฆฌ์ธ์ปจ๋๋ง๋ค ์คํ๋๋ ํ์ด๋จธ๋ฅผ ์๊ฐํด๋ณด์. ์ด ํ์ด๋จธ๋ ์ผ๋ง๋ ๋ง์ ์๊ฐ์ด ์ง๋๊ฐ๋๋ ๊ธฐ์ตํ๊ณ ์๋ค.
~cpp Class Timer { /* ... */ void initialize() { count = 0; period = defaultMillisecondPeriod(); // C++/JAVA์์๋ ๊ทธ๋ฅ ์์๋ก ์จ๋ ๋ ๋ฏํ๋ค. } int defaultMillisecondPeriod() { return 1000; } Timer() { initialize(); } };