์์๋ ๋๋ค, ์๋๋ ํ๋กํผํฐ ๊ตฌ๊ธ๋ง ใฑ
์ค ๋๋ค ๊ฒ์ํ๋ ๋ฐ๋ก ๋์ค๋
๋ฆฌํด๊ฐ์ ๋๊ฐ์๋ฐ ๋ํ ์ผํ๊ฒ ์๊ฐํ๋ฉด 1์ด๋ผ๋ ๊ฐ์ด a ๋ณ์์ ์ ์ฅ๋๋๊ฑด ์๋
ํ ๊ทธ๊ฒ ๋๋ค๊ฐ ํฌ์ธํฐ์ผ?
ํฌ์ธํฐ๋ผ๊ธฐ ๋ณด๋ค๋ C++์ ๋งคํฌ๋ก์ ๋น์ทํ๊ฑฐ๊ฐ์
๋๋ค๋ ์ต๋ช ํจ์๋ฅผ ์ฝ์์ผ๋ก ํํํ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. C#์์๋ ๋ ์ฌ์ด์ ์ฐจ์ด๊ฐ ์๋ค ๋ณด๋ฉด๋๊ณ ์ผํ์ฉ์ผ๋ก ๊ฐํธํ๊ฒ ์ธ ์๋ ์๊ณ ๋ณธ๋ฌธ ์์์ฒ๋ผ ์ด๋ค ํจ์๊ฐ ๋จ์ํ return๋ง ํ๋ฉด ๋๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก๋ ํจ์ body๋ฅผ ์์ฑํ๊ณ return ~๋ฅผ ์์ฑํด์ฃผ์ด์ผ ํ๋๋ฐ ๋๋ค์์ด๋ ์ต๋ช ํจ์๋ฅผ ์ฐ๋ฉด ์ฝ๊ณ ๊ฐ๋ ์ฑ ์ข๊ฒ ์์ฑํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
ํ๋กํผํฐ๋ ๊ฐ์ฒด์ ์บก์ํ๋ฅผ ์ํด getter, setter ํจ์๋ฅผ ํตํด ๋ฉค๋ฒ ๋ณ์๋ฅผ ์กฐ์ํ๊ฒ ๋ง๋๋๋ฐ, ๋ณ๋ ํจ์ ์์ฑ ์์ด ์ด๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ํ๋ ์ญํ ์ ํ๋ค. ๋ณ์์ ๊ฐ์ ๋ฃ๊ธฐ ์ ์ ์ ์ฒ๋ฆฌ ํ๋ ์์ ์ ์ถ๊ฐ๋ก ํด์ค์๋ ์๋ค. ๊ทธ๋ฅ body๋ ์ผ๋ฐํจ์๋ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋๋ฐ, ๋ณต์กํ ์์ ์ ๊ฐ๋ ์ฑ์ด ๋งค์ฐ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์์ฑํ๋๊ฒ ์ข๋ค.
์ฐํจ~ ์๊ธฐ์ฝ๊ฒ ์ค๋ช ๊ฐ์ฌ๋ง
์ง์ง ํ๋กํผํฐ์ ๋ช์ญ์ค๋๋ ์ฝ๋์ด ์์ ๋ค ๊ฟ๋ฐค๋ง๋ ค์ ใ ใ
int a {get {return 1;}} ์ด๊ฑธ
int a => () { return 1; }
๋ก ์ค์ธ๊ฑธ
int a => 1๋ก ๋์ค์ธ๊ฑฐ
์์๋ ๋๋ค, ์๋๋ ํ๋กํผํฐ ๊ตฌ๊ธ๋ง ใฑ
์ค ๋๋ค ๊ฒ์ํ๋ ๋ฐ๋ก ๋์ค๋
๋ฆฌํด๊ฐ์ ๋๊ฐ์๋ฐ ๋ํ ์ผํ๊ฒ ์๊ฐํ๋ฉด 1์ด๋ผ๋ ๊ฐ์ด a ๋ณ์์ ์ ์ฅ๋๋๊ฑด ์๋
ํ ๊ทธ๊ฒ ๋๋ค๊ฐ ํฌ์ธํฐ์ผ?
ํฌ์ธํฐ๋ผ๊ธฐ ๋ณด๋ค๋ C++์ ๋งคํฌ๋ก์ ๋น์ทํ๊ฑฐ๊ฐ์
๋๋ค๋ ์ต๋ช ํจ์๋ฅผ ์ฝ์์ผ๋ก ํํํ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. C#์์๋ ๋ ์ฌ์ด์ ์ฐจ์ด๊ฐ ์๋ค ๋ณด๋ฉด๋๊ณ ์ผํ์ฉ์ผ๋ก ๊ฐํธํ๊ฒ ์ธ ์๋ ์๊ณ ๋ณธ๋ฌธ ์์์ฒ๋ผ ์ด๋ค ํจ์๊ฐ ๋จ์ํ return๋ง ํ๋ฉด ๋๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก๋ ํจ์ body๋ฅผ ์์ฑํ๊ณ return ~๋ฅผ ์์ฑํด์ฃผ์ด์ผ ํ๋๋ฐ ๋๋ค์์ด๋ ์ต๋ช ํจ์๋ฅผ ์ฐ๋ฉด ์ฝ๊ณ ๊ฐ๋ ์ฑ ์ข๊ฒ ์์ฑํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
ํ๋กํผํฐ๋ ๊ฐ์ฒด์ ์บก์ํ๋ฅผ ์ํด getter, setter ํจ์๋ฅผ ํตํด ๋ฉค๋ฒ ๋ณ์๋ฅผ ์กฐ์ํ๊ฒ ๋ง๋๋๋ฐ, ๋ณ๋ ํจ์ ์์ฑ ์์ด ์ด๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ํ๋ ์ญํ ์ ํ๋ค. ๋ณ์์ ๊ฐ์ ๋ฃ๊ธฐ ์ ์ ์ ์ฒ๋ฆฌ ํ๋ ์์ ์ ์ถ๊ฐ๋ก ํด์ค์๋ ์๋ค. ๊ทธ๋ฅ body๋ ์ผ๋ฐํจ์๋ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋๋ฐ, ๋ณต์กํ ์์ ์ ๊ฐ๋ ์ฑ์ด ๋งค์ฐ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์์ฑํ๋๊ฒ ์ข๋ค.
์ฐํจ~ ์๊ธฐ์ฝ๊ฒ ์ค๋ช ๊ฐ์ฌ๋ง
์ง์ง ํ๋กํผํฐ์ ๋ช์ญ์ค๋๋ ์ฝ๋์ด ์์ ๋ค ๊ฟ๋ฐค๋ง๋ ค์ ใ ใ
int a {get {return 1;}} ์ด๊ฑธ
int a => () { return 1; }
๋ก ์ค์ธ๊ฑธ
int a => 1๋ก ๋์ค์ธ๊ฑฐ