1) μΌλ°μ μΌλ‘ μ¬μ©νλ Get ν¨μ.
2) μ°Έμ‘° νμ μ¬λ₯Ό μμ±ν Get ν¨μ.
: μ°¨λΌλ¦¬ 볡μ¬λ³΄λ€λ μ΄λμ νλκ² λ ν¨μ¨μ μ΄λ€.
lvalue νμ μ¬λ§ μμΌλ©΄ rvalue νΈμΆνλ μ½λλ μ€λ₯ λ°μνλ€.
rvalue νμ μ¬λ§ μλ°λ©΄, lvalue νΈμΆνλ μ½λλ μ€λ₯ λ°μνλ€.
κΈ°μ‘΄μ λ©€λ²ν¨μλ κ°μ²΄μ νμ (lvalueλ rvalueλ )μ μκ΄μμ΄ νΈμΆμ΄ κ°λ₯ν¨.
μ°Έμ‘° νμ λ©μλκ° λνλ¬λλ°, μ΄ μΉκ΅¬λ returnType funcName() μ°Έμ‘° νμ μ
μμλλ‘ ν¨μ μ°μ°μ λ€μ & μ°Έμ‘°μλ₯Ό μμ±νλ λ°©μμΌλ‘ μ¬μ©ν¨.
-> νΈμΆνλ μͺ½μ λ°λ νμ μ λ°λΌ λ³΅μ¬ λλ μ΄λ λμμ μνν μ μκ² νλ€. μ°Έμ‘° νμ λ©μλλ₯Ό μ΄μ©ν΄ get ν¨μ νΈμΆμ΄ λΆκ°νκ² νλ μ μ΄ν μ μκ³ , 볡μ¬, μ΄λμ λν λͺ μκ° κ°λ₯νλ€.
: get ν¨μμ κ²½μ°, λ³΅μ¬ λλ μ΄λν΄μΌ νλ κ²½μ°κ° μλ€λ©΄, μ΄ λ μ¬μ©νμ.
λ°ννμ ν¨μμ΄λ¦ () & ? -> lvalueκ°μ²΄λ§ νΈμΆκ°λ₯!
λ°ννμ ν¨μμ΄λ¦ () && ? -> rvalue κ°μ²΄λ§ νΈμΆκ°λ₯!
ν¨μ λ€μ & μ°Έμ‘°μκ° νκ° μλ€λ©΄ , μ΄ λ©€λ²ν¨μλ lvalue κ°μ²΄μμλ§ νΈμΆμ΄ κ°λ₯ν¨.
ν¨μ λ€μ & μ°Έμ‘°μκ° λ κ° μλ€λ©΄, μ΄ λ©€λ²ν¨μλ rValue κ°μ²΄μμλ§ νΈμΆμ΄ κ°λ₯ν¨.
μμμ½λλ₯Ό 보면, Object{} λ μμκ°μ²΄μ΄κΈ° λλ¬Έμ , lvalue κ°μ²΄μμλ§ νΈμΆκ°λ₯ν,
func1() ν¨μλ νΈμΆμ΄ λΆκ°ν¨.
obj κ°μ²΄λ lvalue κ°μ²΄μ΄κΈ° λλ¬Έμ, rValue κ°μ²΄μμλ§ νΈμΆκ°λ₯ν, func2ν¨μλ νΈμΆ λΆκ°νλ§.
obj1 κ°μ²΄λ objμ λ§μ°¬κ°μ§
obj2 κ°μ²΄λ rvalue κ°μ²΄μ΄κΈ° λλ¬Έμ func2() ν¨μλ νΈμΆ λΆκ°ν¨!
μλλ 240305 μΆκ°.
: λͺ¨λ μ΄νν°λΈ 12νλͺ© λ΄μ©
λμ λ°λ κ°μ²΄μ νμ μ λ°λΌμ 볡μ¬λ? μλλ©΄ μ무μΌλ μΌμ΄λμ§ μμΌλμ λν΄
μλμ μ½λλ λμ
λ°λ λμμ΄ κ°μ΄κΈ° λλ¬Έμ , GetDataκ° μ°Έμ‘°λΌκ³ νλλΌλ 볡μ¬κ° λ°μν¨.
: μλνλ©΄ λμ
λ°λ λμμ νμ
μ΄ κ°μ΄κΈ° λλ¬Έμ κ°λ³μ λ©λͺ¨λ¦¬μ£Όμλ₯Ό κ°μ§κ³ μκΈ° λλ¬Έμ.
μ΄λ²μλ λμ
λ°λ λμμ μ°Έμ‘°λ‘ λ³κ²½ν΄λ³΄μ.
-> 볡μ¬κ° λ°μνμ§ μλ κ²μ νμΈν μ μμ.
: lvalue μ°Έμ‘° νμ μ¬ λ₯Ό μμ±νλλΌκ³ μ΄μ¨λ λ°ννμ
μ lvalue μ΄μ§λ§, λ€λ₯Έ κ°μ²΄μ΄κΈ° λλ¬Έμ..
μμ μ½λ.
-> μλμ μ½λμμ μκ°ν μ μλ μ μ μμκ°μ²΄λ‘ μΈν΄ 볡μ¬κ° λ°μνλ κ²μ μ’μ§ μμ.
μ΄λ νλ κ²μ΄ μ’μμ...
μ΄λ―Έ μ¬λΌμ§λ μμκ°μ²΄μ Data κ°μ κ·Έλλ‘ μ΄λ μ²λ¦¬νλ κ²μ΄ λ©λͺ¨λ¦¬λ₯Ό μ μ½ν μ μλ€.
Data ν΄λμ€μλ€κ° μ΄λ μ½λ μμ±ν΄μ λ€μ μ€νν΄λ, Objectμ GetDataλ©€λ² ν¨μλ
rvalue , lvalue μ²λ¦¬ κ°λ₯ν΄μ μ¬μ ν λ³΅μ¬ λ°μ.
: μ°Έμ‘° νμ μ¬λ₯Ό μ¬μ©νμ!!