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λΌκ³ ..