16. [C++] ํด๋ž˜์Šค์˜ ํŠน์ง• / ํŠน์„ฑ

2019. 6. 5. 00:05ใ†PROGRAMMING/C & C++

 

ํด๋ž˜์Šค (class)

C++๋ถ€ํ„ฐ ๋“ฑ์žฅํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์ž๋ฃŒํ˜•.

๊ฐ์ฒด๋ฅผ ์ถ”์ƒํ™”ํ•œ ์ž๋ฃŒํ˜•์ด๋‹ค. (๊ฐ์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž๋ฃŒํ˜•)

(์ถ”์ƒํ™” : ๊ณตํ†ต๋œ ์š”์†Œ๋“ค์„ ์ถ”์ถœํ•˜๋Š” ํ–‰์œ„.)

 

 

 

1. ํด๋ž˜์Šค์˜ ์ ‘๊ทผ์ œ์–ด ์ง€์‹œ์ž (์ ‘๊ทผ์ œ์–ด ๋ ˆ์ด๋ธ”)

 

 

public ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์–ด๋””์„œ๋“  ์ ‘๊ทผ ํ—ˆ์šฉ.

 private - ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ํ—ˆ์šฉ.

protected - ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ƒ์† ๊ด€๊ณ„ & ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ํ—ˆ์šฉ.

 

 

 

 

์ฆ‰, ์™ธ๋ถ€์—์„œ๋Š” public ๋ฉค๋ฒ„์— ๋Œ€ํ•ด์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

(๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)

 

 


 

 

2. ํด๋ž˜์Šค์˜ 4๋Œ€ ์†์„ฑ

์€๋‹‰ํ™”, ์บก์Šํ™”, ์ƒ์†์„ฑ, ๋‹คํ˜•์„ฑ

 

1. ์€๋‹‰ํ™”

๋ฉค๋ฒ„์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ธฐ๋ณธ private์œผ๋กœ ๋‘๋ฉด์„œ, ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•œ๋‹ค.

์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์›์น˜์•Š๋Š” ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์ฐจ๋‹จํ•œ๋‹ค. (๋ฐ์ดํ„ฐ ๋ณดํ˜ธ)

 

 

 

2. ์บก์Šํ™”

๊ด€๋ จ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์„ ํ•œ๋ฒˆ์— ๋ฌถ์–ด์„œ ์ œ๊ณตํ•œ๋‹ค.

๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ˆจ๊ธด๋‹ค. -> ์€๋‹‰ ์†์„ฑ.

์‚ฌ์šฉ์ž๋Š” ๋‚ด๋ถ€ ๋ถ€๋ถ„์„ ๋ชจ๋ฅด๋”๋ผ๋„ ์•ฝ์†๋œ ๋ถ€๋ถ„์„ ํ†ตํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

3. ์ƒ์†์„ฑ

์ž„์˜์˜ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง„ ๊ณตํ†ต๋œ ์š”์†Œ๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—๊ฒŒ ๋ฌผ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค.

(์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๋Œ€, ์ƒ์‚ฐ์„ฑ ์ฆ๋Œ€)

๊ธฐ๋Šฅ์˜ ํ™•์žฅ๊ณผ ์„ธ๋ถ„ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

4. ๋‹คํ˜•์„ฑ

๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ "๋™์ผํ•œ ๋ฉ”์‹œ์ง€"๋ฅผ ํ†ตํ•ด ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ์„ ์ฆ๋Œ€.

 

(์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ์€ ์ถ”ํ›„์— ๋”ฐ๋กœ ํฌ์ŠคํŒ… ์˜ˆ์ •)