C++

Β·C++/기타
C++μ—μ„œλŠ”, ν•œ κ°μ²΄μ—μ„œ λ‹€λ₯Έ 객체둜의 λŒ€μž… μ—°μ‚°μž μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. Mystring s1 {"Frank"}; Mystring s2 = s1;// NOT Assingment // Same as Mystring s2 {s1}; s2 = s1// Assignment C++ μ»΄νŒŒμΌλŸ¬λŠ” κΈ°λ³Έ λŒ€μž… μ—°μ‚°μžλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. μ΄λŠ” 얕은 볡사(shallow copy / memberwise assignment) μž…λ‹ˆλ‹€. λ§Œμ•½ μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” 클래슀의 속성 쀑 raw pointerλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄, μš°λ¦¬λŠ” κΉŠμ€ 볡사(deep copy)λ₯Ό ν•΄μ•Όν•©λ‹ˆλ‹€. 이번 ν¬μŠ€νŠΈμ—μ„œλŠ” c-style stringκ°’μ˜ 포인터λ₯Ό μ†μ„±μœΌλ‘œ μ§€λ‹ˆλŠ” Mystring 클래슀λ₯Ό λ‹€λ€„λ³΄κ² μŠ΅λ‹ˆλ‹€. class Mystring { private: char *st..
Β·C++/기타
μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ΄λž€? C++ μ—μ„œ μš°λ¦¬λŠ” μ—¬λŸ¬κ°€μ§€ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ™”μŠ΅λ‹ˆλ‹€. λ”ν•˜κΈ°(+), λΉΌκΈ°(-), λ‚˜λˆ„κΈ°(/), κ³±ν•˜κΈ°(*)κ°€ λŒ€ν‘œμ μž…λ‹ˆλ‹€. 사싀 μ΄λŸ¬ν•œ μ—°μ‚°μžλ“€λ„ 이미 μ˜€λ²„λ‘œλ”©μ΄ λ˜μ–΄ μžˆλŠ” ν˜•νƒœμž…λ‹ˆλ‹€. μ˜€λ²„λ‘œλ”©μ΄ ν•œ ν•¨μˆ˜κ°€ μ—¬λŸ¬ λ‹€λ₯Έ μžλ£Œν˜• 값을 μ²˜λ¦¬ν•  수 있게 반볡적으둜 μ„ μ–Έν•˜λŠ” κ²ƒμ΄μ˜€μ£ ? μœ„μ˜ 일반적 μ—°μ‚°μžλ“€λ„ integer, double, float λ“±μ˜ μžλ£Œν˜•μ„ λͺ¨λ‘ λ‹€λ£° 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ‹€μ‹œ λŒμ•„μ™€μ„œ μ΄λŸ¬ν•œ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ„ μš°λ¦¬κ°€ μ‚¬μš©ν•˜κ²Œ 될 λ•Œμ—λŠ”, 주둜 user defined type듀을 built-in typeλ“€κ³Ό λΉ„μŠ·ν•˜κ²Œ 행동할 수 있게 ν•˜λŠ” λͺ©μ μž…λ‹ˆλ‹€. λ˜ν•œ μ½”λ“œμ˜ 가독성을 높일 μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ€ μ»΄νŒŒμΌλŸ¬μ—μ„œ μžλ™μ μœΌλ‘œ 행해지지 μ•ŠμŠ΅λ‹ˆλ‹€. ν•œ 가지 μ’…..
transform ν•¨μˆ˜λŠ” 헀더에 λ“€μ–΄μžˆλŠ” ν•¨μˆ˜λ‘œ, 벑터, λ°°μ—΄, λ¬Έμžμ—΄κ³Ό 같은 iterate듀에 λŒ€ν•΄μ„œ λ²”μœ„λ₯Ό μ§€μ •ν•˜μ—¬ ν•΄λ‹Ή λ²”μœ„ λ‚΄μ˜ λͺ¨λ“  데이터λ₯Ό μ§€μ •ν•œ ν•¨μˆ˜λ₯Ό 일괄 μ μš©μ‹œν‚€λŠ” 역할을 ν•©λ‹ˆλ‹€. 총 4개의 인자λ₯Ό λ°›λŠ”λ°μš”, μˆœμ„œλŒ€λ‘œ μžλ£Œλ“€μ˜ μ‹œμž‘ 지점, λλ‚˜λŠ” 지점, λ³€ν™˜ν•˜μ—¬ λ°˜ν™˜λ°›μ„ 지점, 그리고 μ μš©ν•  ν•¨μˆ˜μž…λ‹ˆλ‹€. string mystr = "hello everyone"; transform(mystr.begin(), mystr.end(), mystr.begin(), ::toupper); cout
FriendλŠ” private 클래슀 멀버에 μ ‘κ·ΌκΆŒν•œμ΄ μžˆλŠ” ν•¨μˆ˜ λ˜λŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ ν•΄λ‹Ή ν•¨μˆ˜ λ˜λŠ” ν΄λž˜μŠ€λŠ” μ ‘κ·Όν•˜κ³ μž ν•˜λŠ” 클래슀의 멀버가 μ•„λ‹™λ‹ˆλ‹€. (μ ‘κ·Όν•˜κ³ μž ν•˜λŠ” 클래슀의 속성 λ˜λŠ” λ©”μ†Œλ“œκ°€ μ•„λ‹™λ‹ˆλ‹€.) ν•¨μˆ˜μ˜ 경우, 일반적인 ν•¨μˆ˜ 일 μˆ˜λ„ 있고, ν˜Ήμ€ λ‹€λ₯Έ 클래슀의 멀버 λ©”μ†Œλ“œμΌ 수 μžˆμŠ΅λ‹ˆλ‹€. 클래슀일 경우, μ ‘κ·Όν•˜κ³ μž ν•˜λŠ” 클래슀의 λͺ¨λ“  private 멀버듀에 λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ΄ μžˆλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. ν•œλ§ˆλ””λ‘œ, friendλŠ” 클래슀의 λͺ¨λ“  데이터에 μ ‘κ·Ό κΆŒν•œμ„ 가진, 클래슀 멀버가 μ•„λ‹Œ μ™ΈλΆ€ ν•¨μˆ˜ λ˜λŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. friend κ΄€κ³„λŠ” friend ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ ν•¨μˆ˜ λ˜λŠ” 클래슀의 μ •μ˜λ₯Ό ν•  λ•Œ λͺ…μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ, friend κ΄€κ³„λŠ” μ–‘λ°©ν–₯성이 μ—†μŠ΅λ‹ˆλ‹€. Aκ°€ B의 friend라고..
Chan Lee
'C++' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (2 Page)