๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์†Œ๋ฉธ์ž2

[C++] 16-3. ์ƒ์†(Inheritance)๊ด€๊ณ„์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ, ์†Œ๋ฉธ ์ƒ์† ๊ด€๊ณ„์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ์œ ํ˜• ์ค‘ ๋‹คํ˜•์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ธ์Šคํ„ด์Šค๋Š” ๋ณดํ†ต ํŒŒ์ƒํด๋ž˜์Šค(Derived Class)๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ํด๋ž˜์Šค(Base Class)๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์† ๊ด€๊ณ„์—์„œ ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ ๋‹ค ํ•˜๋”๋ผ๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊นŒ์ง€ ๋งŒ๋“ค์–ด์ง€์ง€๋งŒ ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” ์ž„์˜๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ธ์Šคํ„ด์Šค์˜ ์†Œ๋ฉธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ํŒŒ์ƒ ํด๋ž˜์Šค๋งŒ ์†Œ๋ฉธํ•˜๊ณ  ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์˜์—ญ์ด ์†Œ๋ฉธ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak)๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋˜ํ•œ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์ฑ…์ž„์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์ž(Contructor) ๊ธฐ๋ณธ ํด๋ž˜์Šค(Base Class)์˜ ์ƒ์„ฑ์ž ํ˜ธ์ถœ: ํŒŒ์ƒ ํด๋ž˜์Šค(Derived Class)์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „์— ๋จผ์ € ๊ธฐ๋ณธ .. 2023. 6. 29.
[C++] 15. ํด๋ž˜์Šค(class)์™€ ๊ตฌ์กฐ์ฒด(struct) # ๊ตฌ์กฐ์ฒด(struct) ๊ตฌ์กฐ์ฒด(struct)๋Š” ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ฐ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ํด๋ž˜์Šค์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ํด๋ž˜์Šค์™€๋Š” ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠน์ • ๋™์ž‘์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค C++์—์„œ๋Š” ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์–ผ๋งˆ๋“ ์ง€ ๊ฐ€์งˆ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ตฌ์กฐ์ฒด์˜ ํŠน์„ฑ์ƒ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.(๊ทธ๋Ÿด ๋ฐ”์—” ํด๋ž˜์Šค๋ฅผ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค) ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ์ฃผ๋กœ ๊ตฌ์กฐ์ฒด ๋‚ด์—์„œ ์ง์ ‘ ์ ‘๊ทผ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ตฌ์กฐ์ฒด์˜ ๊ธฐ๋ณธ์ ์ธ ๊ฐ€์‹œ์„ฑ์€ public์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰.. 2023. 6. 9.