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

๋ถ€๋ชจํด๋ž˜์Šค2

[C++] 16-3. ์ƒ์†(Inheritance)๊ด€๊ณ„์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ, ์†Œ๋ฉธ ์ƒ์† ๊ด€๊ณ„์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ์œ ํ˜• ์ค‘ ๋‹คํ˜•์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ธ์Šคํ„ด์Šค๋Š” ๋ณดํ†ต ํŒŒ์ƒํด๋ž˜์Šค(Derived Class)๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ํด๋ž˜์Šค(Base Class)๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์† ๊ด€๊ณ„์—์„œ ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ ๋‹ค ํ•˜๋”๋ผ๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊นŒ์ง€ ๋งŒ๋“ค์–ด์ง€์ง€๋งŒ ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” ์ž„์˜๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ธ์Šคํ„ด์Šค์˜ ์†Œ๋ฉธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ํŒŒ์ƒ ํด๋ž˜์Šค๋งŒ ์†Œ๋ฉธํ•˜๊ณ  ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์˜์—ญ์ด ์†Œ๋ฉธ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Memory Leak)๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋˜ํ•œ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์ฑ…์ž„์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์ž(Contructor) ๊ธฐ๋ณธ ํด๋ž˜์Šค(Base Class)์˜ ์ƒ์„ฑ์ž ํ˜ธ์ถœ: ํŒŒ์ƒ ํด๋ž˜์Šค(Derived Class)์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „์— ๋จผ์ € ๊ธฐ๋ณธ .. 2023. 6. 29.
[C++] 16-1. ์ƒ์†(Inheritance)๊ณผ ๊ฐ€์ƒ ํ•จ์ˆ˜(Virtual Function) ์ด๋ฒˆ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ๋Š” ๊ฒฝ์–ด์ฒด๋กœ ๊ธ€์„ ์“ฐ๊ฒ ์”๋‹ˆ๋‹ค. ์—ฌํƒœ๊นŒ์ง€ ํ‰์–ด์ฒด๋กœ ํฌ์ŠคํŒ…ํ–ˆ๋Š”๋ฐ, ๋”ฑ๋”ฑํ•œ ๋Š๋‚Œ์ด ๋“ค์–ด์„œ ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ์ข€ ๋” ์นœ์ ˆํ•˜๊ฒŒ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ ค๊ณ  ๊ฒฝ์–ด์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ์ƒ์†(Inheritance) ๊ฐ์ฒด ์ง€ํ–ฅ์˜ 4๋Œ€ ์›์น™(์บก์Šํ™”, ์ถ”์ƒํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ) ์ค‘ ์ƒ์† ๊ทธ๋ฆฌ๊ณ  ๋‹คํ˜•์„ฑ์„ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์†์€ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฝƒ์ด์ž ํ•ต์‹ฌ์ด๋ผ๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค ์ž์ฒด๋งŒ์œผ๋กœ๋„ ๊ฐ์ฒด๋ผ๋ฆฌ์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค๋ฉด, ์ƒ์†์„ ํ†ตํ•œ ๋‹คํ˜•์„ฑ์€ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋”์šฑ ํ’์„ฑํ•˜๊ณ  ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ฃ . ์ƒ์†์„ ํ†ตํ•ด ๊ธฐ์กด์— ์ •์˜๋œ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ณตํ†ต๋œ ๊ฒƒ์„ ๊ณต์œ ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์†์€ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ๊ณผ ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ.. 2023. 6. 23.