Chapter 0 Getting Started ¶
μ€μ μμ€ ¶
- Hello World Program
~cpp // small C++ program #include <iostream> int main() { std::cout << "Hello, world!" << std::endl; return 0; }
main ν¨μμ 리ν΄νκ³Ό 리ν΄κ°
main ν¨μμ 리ν΄νμ ISO/ANSI C++ νμ€μμ intλ‘ μ νκ³ μλ€. 리ν΄κ°μ νλ‘κ·Έλ¨μ΄ μλ¬΄λ° μλ¬ μμ΄ μ’
λ£λλ κ²½μ°μλ 0μ 리ν΄νλλ‘ λμ΄ μκ³ , μλ¬κ° λ°μν΄μ μ’
λ£ν κ²½μ°μλ 0 μ΄μΈμ κ°μ 리ν΄νλλ‘ λμ΄μλ€. μ΄ κ°μ OSλ‘ λλ €μ§λ κ°μ΄κΈ°λ νμ§λ§ OSμμ μ΄κ²μ λ°λΌ νΉλ³ν μ²λ¦¬νλ κ²μ μκΈ° λλ¬Έμ μΌλ°μ μΈ κ²½μ°μλ μ΄ κ°μ μλ¬΄λ° μλ―Έκ° μλ€. μ΄ κ°μ μ΄μ©ν μ μλ λ°©λ²μΌλ‘λ exec... ν¨μλ₯Ό μ΄μ©νμ¬ νλ‘κ·Έλ¨μ μ€νν΄μ£Όκ³ λ°μμ€λ λ°©λ² λ±μ΄ μλ€.
Side effectC++μ λͺ¨λ λ¬Έμ₯(statement)μ κ³μ° κ°λ₯ν μμ΄λ€. μ»΄νμΌλ¬μμ μλ¬λ₯Ό μ°Ύμλλ κ³μ° κ°λ₯ν μμΈμ§ νμΈνμ¬ λ¬Έμ₯μ΄ μ¬λ°λ₯Έ λ¬Έμ₯μΈμ§ μλ¬λ μλμ§ νμΈνκ² λλ€. μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ λ λ¬Έμ₯μ΄ μλ€κ³ νμ.
~cpp 100; 1 + 3;μ΄λ° λ¬Έμ₯μ΄ λ€μ΄μλ C++ νλ‘κ·Έλ¨μ μ»΄νμΌ ν΄ λ³΄λ©΄ μλ¬κ° λ κ² κ°μ§λ§ μλ¬κ° λμ§ μλλ€. μλνλ©΄ λ λ€ λͺ¨λ κ³μ° κ°λ₯ν μμ΄κΈ° λλ¬Έμ΄λ€. κ³μ° κ°λ₯ν μμ΄λΌλ©΄ μ΅μ’ κ²°κ³Όκ° μ‘΄μ¬ν΄μΌ νλ€. 첫λ²μ§Έ λ¬Έμ₯μ κ³μ°μ΄ λλμλ μμ΄κ³ μ΅μ’ κ²°κ³Όκ° 100 μ΄λ€. λλ²μ§Έ λ¬Έμ₯μ νλ²λ§ κ³μ°νλ©΄ κ³μ°μ΄ λλκ³ μ΅μ’ κ²°κ³Όλ 4 μ΄λ€. κ·Έλ λ€λ©΄ λ€μκ³Ό κ°μ λ¬Έμ₯μ κ³μ° κ°λ₯ν μμ΄ λ§λκ°?
~cpp a = 10; std::cout << "Hello World!!";첫λ²μ§Έ λ¬Έμ₯μ κ³μ°νλ©΄ aλΌλ λ³μμ 10μ λμ νλ©΄ λκ³ κ²°κ΅ λ¨λκ²μ aλ°μ μμΌλ―λ‘ aμ κ°μ΄ μ΅μ’ κ²°κ³Όκ° λλ€. λλ²μ§Έ λ¬Έμ₯μ κ³μ°νλ©΄ std::coutκ³Ό "Hello World!!"λ₯Ό μΌμͺ½ μ¬ννΈ μ°μ°μ νκ³ λμ¨ κ²°κ³Όκ° μ΅μ’ κ²°κ³Όκ° λλ€. μ€μ¬λ‘ μ°μ° κ²°κ³Όκ° std::cout μ΄κ³ μ΄κ²μ΄ μ΅μ’ κ²°κ³Όκ° λλ€. μ¬κΈ°μ μΌμͺ½ μ¬ννΈ μ°μ°μ΄ κ³Όμ° std::coutκ³Ό "Hello World!!" μ¬μ΄μμ κ°λ₯ν κ²μΈκ° λΌλ μλ¬Έμ κ°κ² λ μλ μκ² μ§λ§ C++μλ μ°μ°μ μ¬μ μ(operator overloading) λΌλ κ²μ΄ μκΈ° λλ¬Έμ μ΄λ°κ²μ μΆ©λΆν κ°λ₯νκ² λ§λ€μ μλ€κ³ λ§ μκ³ λμ΄κ°κΈ° λ°λλ€. μ¬κΈ°μ λλ²μ§Έ λ¬Έμ₯μ μμΈν μκ³ λμ΄κ° νμκ° μλ€. λλ²μ§Έ λ¬Έμ₯λ μμμ μ€λͺ νλ―μ΄ κ³μ° κ°λ₯ν μμ΄κ³ , κ²°κ΅ μ€νλλ©΄ κ³μ°μ΄ μνλμ§λ§ κ·Έκ²κ³Ό λλΆμ΄ μΌμ΄λλ μΌμ΄ νκ°μ§ λ μλλ°, λ°λ‘ νμ€ μΆλ ₯μΌλ‘ "Hello World!!" κ° μΆλ ₯λλ€λ κ²μ΄λ€. μ΄λ κ² κ³μ°λμ΄μ§λ κ³Όμ μμ κ³μ° κ²°κ³Όμ λλΆμ΄ λνλλ κ²μ side effectλΌκ³ νλ€. 첫λ²μ§Έ λ¬Έμ₯κ³Ό κ°μ κ²½μ°μλ side effectκ° μλ€. λ€μκ³Ό κ°μ λ λ¬Έμ₯μ΄ μλ€κ³ νμ.
~cpp a = b + c; std::cout << "Hi! C++";μ¬κΈ°μ 첫λ²μ§Έ λ¬Έμ₯μ bλΌλ λ³μμ κ°κ³Ό cλΌλ λ³μμ κ°μ λν΄μ aλΌλ λ³μμ μ μ₯νλ μμΌλ‘ μ΅μ’ κ²°κ³Όκ° aλΌλ λ³μμ μ μ₯λλ―λ‘ μ΄λ¬ν λ¬Έμ₯μ μ΅μ’ κ²°κ³Όλ§μ μ΄μ©νκΈ° μν λ¬Έμ₯μ΄κ³ , λλ²μ§Έ λ¬Έμ₯μ std::coutκ³Ό "Hi! C++"μ μΌμͺ½ μ¬ννΈ μ°μ°μ νμ¬ side effectλ‘ "Hi! C++"μ νμ€ μΆλ ₯μ μΆλ ₯νκ³ μ΅μ’ κ²°κ³Όλ νΉλ³ν λ°λ‘ μ μ₯νμ§ μμΌλ―λ‘ μ΅μ’ κ²°κ³Όμλ κ΄μ¬μ΄ μκ³ , side effectλ§μ μ΄μ©νκΈ° μν λ¬Έμ₯μ΄λ€. λ¬Όλ‘ μλ₯Ό λ€μ§λ μμμ§λ§ μ΅μ’ κ²°κ³Όλ μ΄μ©νκ³ side effectλ μ΄μ©νκΈ° μν λ¬Έμ₯λ μλ€.