λͺ©λ‘μ „체 κΈ€ (1005)

😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[객체의 μ°Έμ‘°, 볡사 μƒμ„±μž] μ°Έμ‘° reference λ³€μˆ˜

🐍 μ°Έμ‘° reference 포인터 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•΄ * 기호λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ μ°Έμ‘° λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•΄ & 기호λ₯Ό μ‚¬μš©ν•œλ‹€ μ°Έμ‘° λ³€μˆ˜λŠ” μ„ μ–Έλœ λ³€μˆ˜μ— λŒ€ν•œ 별λͺ… (alias) β˜‘οΈ μ°Έμ‘° λ³€μˆ˜ 이미 μ„ μ–Έλœ λ³€μˆ˜ (원본 λ³€μˆ˜λ‘œ 지칭) 에 λŒ€ν•œ 별λͺ… 참쑰자 & λ₯Ό μ΄μš©ν•˜μ—¬ μ„ μ–Έν•˜λ©°, μ„ μ–Έ μ‹œ λ°˜λ“œμ‹œ 원본 λ³€μˆ˜λ‘œ μ΄ˆκΈ°ν™” ν•΄μ•Ό ν•œλ‹€ μ°Έμ‘° λ³€μˆ˜κ°€ μ„ μ–Έλ˜λ©΄ μ°Έμ‘° λ³€μˆ˜ μ΄λ¦„λ§Œ μƒμ„±λ˜λ©°, λ³„λ„μ˜ 곡간이 ν• λ‹Ήλ˜μ§€ μ•ŠλŠ”λ‹€ μ°Έμ‘° λ³€μˆ˜λŠ” μ΄ˆκΈ°ν™”λ‘œ μ§€μ •λœ 원본 λ³€μˆ˜μ˜ 곡간을 κ³΅μœ ν•œλ‹€ β˜‘οΈμ°Έμ‘° λ³€μˆ˜ μ‚¬μš© μ°Έμ‘° λ³€μˆ˜λŠ” ν¬λ‹ˆν„°κ°€ μ•„λ‹ˆλ―€λ‘œ refn.setRadius(30) μ΄λ ‡κ²Œ ν•΄μ•Ό ν•œλ‹€ μ°Έμ‘° λ³€μˆ˜μ— λŒ€ν•œ 포인터λ₯Ό λ§Œλ“€ 수 μžˆλ‹€ int *p = &refn; β˜‘οΈμ°Έμ‘° λ³€μˆ˜ μ„ μ–Έ μ‹œ 주의 사항 μ΄ˆκΈ°ν™”κ°€ μ—†λ‹€λ©΄ 컴파일 였λ₯˜κ°€ λ°œμƒν•œλ‹€ μ°Έμ‘°..

[객체의 μ°Έμ‘°, 볡사 μƒμ„±μž] ν•¨μˆ˜ 호좜 μ‹œ 객체 전달

🐍 ν•¨μˆ˜ 호좜 μ‹œ 객체 전달 β˜‘οΈ 1) 값에 μ˜ν•œ 호좜 κ³Όμ • ν•¨μˆ˜ μ•ˆμ—μ„œ 맀개 λ³€μˆ˜ 객체에 μ–΄λ–€ λ³€ν™”κ°€ μΌμ–΄λ‚˜λ„ μ‹€μΈμž (원본 객체) λ₯Ό ν›Όμ†μ‹œν‚€μ§€ μ•ŠλŠ” μž₯점 μ‹€μΈμž 객체의 크기가 크면 객체λ₯Ό λ³΅μ‚¬ν•˜λŠ” μ‹œκ°„μ΄ μ»€μ§€λŠ” 단점 객체가 ν•¨μˆ˜μ— μ „λ‹¬λ˜λ©΄, ν•¨μˆ˜μ˜ 맀개 λ³€μˆ˜ 객체가 μƒμ„±λ˜κ³ , ν•¨μˆ˜κ°€ μ’…λ£Œν•˜λ©΄ 맀개 λ³€μˆ˜ 객체가 μ†Œλ©Έλœλ‹€ 맀개 λ³€μˆ˜ 객체의 μƒμ„±μžμ™€ μ†Œλ©Έμžκ°€ λͺ¨λ‘ μ‹€ν–‰λ˜λŠ”κ°€? -> μ•„λ‹ˆλ‹€ 객체λ₯Ό 맀개 λ³€μˆ˜λ‘œ κ°€μ§€λŠ” ν•¨μˆ˜μ˜ 경우 C++ μ»΄νŒŒμΌλŸ¬λŠ” 맀개 λ³€μˆ˜ 객체의 μƒμ„±μžλŠ” μ‹€ν–‰λ˜μ§€ μ•Šκ³  μ†Œλ©Έμžλ§Œ μ‹€ν–‰λ˜λ„λ‘ 컴파일 ν•œλ‹€ μ»΄νŒŒμΌλŸ¬λŠ” 맀개 λ³€μˆ˜ 객체의 μƒμ„±μžκ°€ μ‹€ν–‰λ˜μ§€ μ•Šλ„λ‘ ν•œλ‹€ μ†Œλ©Έμžμ˜ κ²½μš°λŠ” λ‹€λ₯΄λ‹€ 맀개 λ³€μˆ˜ 객체의 μƒμ„±μžκ°€ μ‹€ν–‰λ˜μ§€ γ…‡λ‚³κ³  μ†Œλ©Έμžλ§Œ μ‹€ν–‰λ˜λŠ” λΉ„λŒ€μΉ­ κ΅¬μ‘°λŠ”, ν•¨μˆ˜ 호좜 μ‹œ 원본 객체의 μƒνƒœ..

[객체 포인터와 객체 λ°°μ—΄, 객체의 동적 생성] this 포인터와 string λ¬Έμžμ—΄ μ‚¬μš©

🐍 this 포인터 β˜‘οΈ this λŠ” 객체 μžμ‹ μ— λŒ€ν•œ 포인터 클래슀의 멀버 ν•¨μˆ˜ λ‚΄μ—μ„œλ§Œ μ‚¬μš©λœλ‹€ this λŠ” μ „μ—­ λ³€μˆ˜λ„ μ•„λ‹ˆκ³  ν•¨μˆ˜ 내에 μ„ μ–Έλœ 지역 λ³€μˆ˜λ„ μ•„λ‹ˆλ‹€ this λŠ” 객체의 멀버 ν•¨μˆ˜κ°€ 호좜될 λ•Œ, μ»΄νŒŒμΌλŸ¬μ— μ˜ν•΄ 보이지 μ•Šκ²Œ μ „λ‹¬λ˜λŠ” 객체에 λŒ€ν•œ μ£Όμ†Œμ΄λ‹€ β˜‘οΈ this 와 객체 this λŠ” 객체 μžμ‹ μ— λŒ€ν•œ 포인터 μƒμ„±μž ν•¨μˆ˜μ˜ 경우 this-> λŠ” μƒλž΅ κ°€λŠ₯ β˜‘οΈthis 의 ν•„μš”ν•œ 경우 1) 멀버 λ³€μˆ˜μ˜ 이름과 λ™μΌν•œ μ΄λ¦„μœΌλ‘œ 맀개 λ³€μˆ˜ 이름을 μ§“κ³ μž ν•˜λŠ” 경우 맀개 λ³€μˆ˜μ˜ 이름은 μ†ŒμŠ€ ν”„λ‘œκ·Έλž¨μ˜ κ°•λ ₯ν•œ 주석 역할이닀 2) 객체의 멀버 ν•¨μˆ˜μ—μ„œ 객체 μžμ‹ μ˜ μ£Όμ†Œλ₯Ό 리턴할 λ•Œ ν•„μš”ν•˜λ‹€ μ—°μ‚°μž 쀑볡을 κ΅¬ν˜„ν•  λ•Œ, 많이 λ°œμƒν•œλ‹€ β˜‘οΈthis 의 μ œμ•½ 쑰건 this λŠ” 클래슀의 멀버 ν•¨μˆ˜μ—μ„œ..

[객체 포인터와 객체 λ°°μ—΄, 객체의 동적 생성] 객체 포인터와 new delete 동적 생성 및 ν• λ‹Ήκ³Ό λ°˜ν™˜

🐍 객체 포인터 μ„ μ–Έ 및 ν™œμš© β˜‘οΈ 객체 포인터 객체의 멀버 ν•¨μˆ˜λ₯Ό 읽고 값을 μ“°κ±°λ‚˜ 멀버 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆλ‹€ β˜‘οΈ 객체에 λŒ€ν•œ 포인터 λ³€μˆ˜ μ„ μ–Έ Circle *p; β˜‘οΈν¬μΈν„° λ³€μˆ˜μ— 객체 μ£Όμ†Œ 지정 객체의 μ£Όμ†ŒλŠ” 객체 이름 μ•žμ— & μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ ν‘œν˜„ν•œλ‹€ p = &donut; β˜‘οΈν¬μΈν„°λ₯Ό μ΄μš©ν•œ 객체 멀버 μ ‘κ·Ό 객체 μ΄λ¦„μœΌλ‘œ 멀버λ₯Ό μ ‘κ·Όν•  λ•Œ 점(.) μ—°μ‚°μžλ₯Ό μ΄μš©ν•œλ‹€ d = donut.getArea(); 객체 ν¬μΈν„°λ‘œ 멀버λ₯Ό μ ‘κ·Όν•  λ•Œ -> μ—°μ‚°μžλ₯Ό μ΄μš©ν•œλ‹€ d = p -> getArea(); d = (*p).getArea(); // 객체 포인터 μ„ μ–Έ 및 ν™œμš© #include using namespace std; class Circle { int radius; public: Circle() {..