Language/C++

[C++] 기초2(ν•¨μˆ˜ μ˜€λ²„λ‘œλ”©)

Dexter_- 2016. 9. 20. 11:38
728x90
λ°˜μ‘ν˜•

 

 

 

C++ 기초


 

 

 

 

πŸ”” 예)

 

 

πŸ”” 예) κ΄€κ³„μ—°μ‚°μž

 

μ‹€ν–‰ κ²°κ³Ό

 

 

πŸ”” 예) μ •μˆ˜ 값을 2μ§„μˆ˜λ‘œ 좜λ ₯ν•˜λŠ” 방법

 

μ‹€ν–‰ κ²°κ³Ό

 

 

πŸ”” 예)

 

  • 레퍼런슀 μ‚¬μš©μ‹œ μ΄λŸ°κ²½μš°μ—λŠ” 100 을넣기 μœ„ν•΄ 4byte의 λ©”λͺ¨λ¦¬ 곡간을 μƒμ„±ν•œλ‹€.

 

μ‹€ν–‰ κ²°κ³Ό

 

 

πŸ”” 예)

 

 

  • μ„œλ‘œλ‹€λ₯Έ type 의 λ³€μˆ˜μ— 레퍼런슀λ₯Ό μ‚¬μš©ν•˜λ©΄ μƒˆλ‘œμš΄ 4byte λ©”λͺ¨λ¦¬ 곡간을 μƒμ„±ν•˜μ—¬ A의 μ•„μŠ€ν‚€μ½”λ“œ 65λ₯Ό λ„£λŠ”λ‹€.

 

μ‹€ν–‰ κ²°κ³Ό

 

 

πŸ”” 예) 레퍼런슀λ₯Ό μ΄μš©ν•œ ν•΄κ²°

 

 

μ‹€ν–‰ κ²°κ³Ό

 

 

πŸ”” 예) sqrt()와 pow() ν•¨μˆ˜μ˜ μ‚¬μš©

 

double sqrt_2 = sqrt(2.0);

 

 

  • 2λ₯Ό 인자둜 λ„˜κ²¨μ£Όλ©΄, 2의 μ œκ³±κ·Όμ„ λ°˜ν™˜ν•œλ‹€.

double pow_12_2 = pow((double)12, 2);

 

  • 12의 2승, 즉 12의 μ œκ³±μ„ λ°˜ν™˜ν•œλ‹€.

 

μ‹€ν–‰ κ²°κ³Ό

 

 

ν•¨μˆ˜μ˜ μ˜€λ²„λ‘œλ”©

πŸ“Œ μ˜€λ²„λ‘œλ”©(Overloading)μ΄λž€ μ—¬λŸ¬ν•¨μˆ˜λ“€μ΄ λ™μΌν•œ 이름을 μ‚¬μš©ν•  수 μžˆλŠ” κΈ°λŠ₯을 λ§ν•œλ‹€.

void Func(int a, int b);

 

 

πŸ’‘ μ‹œκ·Έλ‹ˆμ²˜λž€ ?

 

  • μœ„ ν•¨μˆ˜ μ›ν˜•μ—μ„œ 인자 뢀뢄을 μ˜λ―Έν•œλ‹€. Func() ν•¨μˆ˜μ—μ„œλŠ” int a, int b 뢀뢄이 μ‹œκ·Έλ‹ˆμ²˜κ°€ λœλ‹€.

 

  • ν•¨μˆ˜κ°€ λ‹€λ£¨λŠ” μΈμžμ™€ λ°˜ν™˜ κ°’μ˜ νƒ€μž…μ΄ int인지 float인지와 상관없이 λ™μΌν•œ μ½”λ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

 

μ‹€ν–‰ κ²°κ³Ό

 

 

 

기본적인 μ˜€λ²„λ‘œλ”©μ˜ κ·œμΉ™

  1. μ–΄λ–€ ν•¨μˆ˜λ₯Ό ν˜ΈμΈ¨ν• μ§€ κ²°μ •ν•˜λŠ” κ·œμΉ™
  2. λ°˜ν™˜ κ°’λ§Œ ν‹€λ¦° κ²½μš°λŠ” μ˜€λ²„λ‘œλ“œν•  수 μ—†λ‹€.
  3. μ‹œκ·Έλ‹ˆμ²˜κ°€ λ‹€λ₯΄λ”라도 μ˜€λ²„λ‘œλ“œν•  수 μ—†λŠ” 경우
    • ν•¨μˆ˜ 선택이 μ• λ§€ν•œ 경우 μΊμŠ€νŒ…μœΌλ‘œ 개발자의 μ˜λ„λ₯Ό μ •ν™•ν•˜κ²Œ λ°νžŒλ‹€.
    • μ˜λ„λ₯Ό λ°νžˆμ§€ μ•Šμ„ 경우 μš°μ„  μˆœμœ„κ°€ κ°€μž₯ 높은 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ²Œ λœλ‹€.
  4. μ •ν™•ν•˜κ²Œ μΌμΉ˜ν•˜λŠ” 경우(Exact Match)
  5. μŠΉμ§„μ— μ˜ν•œ ν˜•λ³€ν™˜(Promotion)
  6. ν‘œμ€€ ν˜•λ³€ν™˜(Standard Conversions)
  7. μ‚¬μš©μžμ— μ˜ν•œ ν˜•λ³€ν™˜(User-defined Conversions)

 

 

728x90
λ°˜μ‘ν˜•