μ΄κ²μ΄ μλν λμμΈμ§ μλμ§λ μ μ μμ§λ§(κ·Έλ λ€λ©΄ μ£μ‘ν©λλ€. μ΄ λ¬Έμ λ₯Ό λ«μΌμμμ€), μ΄κ²μ λΆλͺ ν νμ©λμ΄μλ μ λ©λλ€!
μ°λ¦¬κ° λ§νμ,
1) foo
λ³μκ° κΈ°λ³Έμ μΌλ‘ 1μ κ°μ κ°μ§κΈ°λ₯Ό μν©λλ€.
2) μ¬μ©μκ° μ΄λ€ μμΌλ‘λ μνΈ μμ©ν λ κ°μ΄ λ³κ²½λ©λλ€(μ
λ ₯μ΄λΌκ³ κ°μ νκ² μ΅λλ€).
3) μ¬μ©μκ° μλ£ν ν foo
μ κ°μ λ€μ 1μ κ°μ κ°μ ΈμΌ ν©λλ€.
μ¬κΈ°μ μΌμ΄λλ μΌμ setget
μ κ΄λ ¨λ ν¨μκ° μ΄λ―Έ 1μΌ λ κ°μ΄ 1λ‘ μ€μ λ λλ§λ€ νΈμΆλκ³ μλ κ°μ΄ λ€λ₯Ό λ ν λ²(μ²μ) νΈμΆλμ΄μΌ νλ€λ κ²μ
λλ€. μ΄κ²μ λλ₯Ό μν΄ μ±λ₯μ λ€μ μ£½μ΄κ³ μμ΅λλ€. λλ μ΄κ²μ ν μ μλ€λ κ²μ μκ³ μμ΅λλ€.
if (new_value == old_value):
return
κ·Έλ¬λ μ΄κ²μ μλμΌλ‘ μνλμ΄μΌ ν©λλ€.
μ΄κ²μ μλμΌλ‘ νλ κ²μ μ’μ μκ°μ΄ μλλΌκ³ μκ°ν©λλ€. μ΄λ―Έ μλ κ²κ³Ό λμΌν κ°μΌλ‘ λ³μλ₯Ό μ€μ ν΄λ μ±λ₯μ μν₯μ λ―ΈμΉμ§ μμμΌ ν©λλ€. μ΄λ νμν κ²½μ° setget
ν¨μκ° μ²λ¦¬ν΄μΌ νλ κ²μ
λλ€. λν κ° κ²μ¬λ₯Ό μΆκ°νλ©΄ _will_ μλ‘μ΄(κ°λ
μ νμνμ§ μμ) λΆκΈ°μ΄κΈ° λλ¬Έμ μ±λ₯μ μν₯μ λ―ΈμΉ©λλ€.
λν λμΌν κ°μ μ€μ ν΄λ setterμ μν₯μ λ―ΈμΉμ§ μμΌλ―λ‘ λ¬΄μν μ μλ€κ³ κ°μ ν μλ μμ΅λλ€.
λ§€λ² νλμ κ°μ μ€μ νλ©΄ μ±λ₯μ΄ μ νλ μ μλ κ²½μ° λ§€μ° λ³΅μ‘ν setterκ° μλ κ²μ²λΌ 보μ λλ€.
κΈμμ, μΌλ°μ μΌλ‘ μ체 ν λΉλ§ νλ©΄ λ¬Έμ κ° λμ§ μμ§λ§ "setget"μ΄ μ λΆμΈ κ²μ²λΌ μ κ°μ ν λΉνλ κ²λ³΄λ€ λ λ§μ μμ μ μννλ©΄ μ±λ₯μ΄ μ νλ©λλ€. νΉν κ°μ΄ λ³κ²½λμ§ μκ³ λͺ¨λ νλ μμ μ체 ν λΉλ κ²½μ°.
κ²λ€κ° (λ΄κ° μκ³ μλ) λͺ¨λ C++ μ»΄νμΌλ¬λ κ·Έλ¬ν μν νμλ‘λΆν° λΉμ μ 보νΈν©λλ€. (μ μ΄λ κΈ°λ³Έ μ νμ κ²½μ° ν λΉ μ°μ°μλ₯Ό μ€λ²λ‘λνλ©΄ μ΄ λ³΄νΈκ° 무ν¨νλ©λλ€.) μ¬μ€, amd CPUμμ λΆλ μμμ μ«μμ λν μ체 ν λΉ νμλ κ°μ΄ λμΌνκ² μ μ§λλμ§ νμΈνκΈ° μν΄ μΌλΆ μ½λκ° μ΄λ₯Ό νμΈνλ κ²μ νμΈνμ΅λλ€. κ·Έκ²μ μ΄λ¦μ μμ΄ λ²λ¦° μΌλΆ νλ‘μ νΈμ λν μ¨μ μ± κ²μ¬λ‘ μνλμμ΅λλ€.
κ°λ¨ν ν΄κ²° λ°©λ²μ΄ μμ λ μ΄μ μ½λλ₯Ό κΉ¨λ¨λ¦΄ κ°μΉκ° μλ€κ³ μκ°ν©λλ€(λμΌν κ° ν λΉ μλμ λν΄ μ¬μ©μμκ² μλ¦Όμ νμνκΈ° μν΄ setterλ₯Ό νμ©νλ μ½λκ° μμ΅λλ€).
κ°μ₯ μ μ©ν λκΈ
κ°λ¨ν ν΄κ²° λ°©λ²μ΄ μμ λ μ΄μ μ½λλ₯Ό κΉ¨λ¨λ¦΄ κ°μΉκ° μλ€κ³ μκ°ν©λλ€(λμΌν κ° ν λΉ μλμ λν΄ μ¬μ©μμκ² μλ¦Όμ νμνκΈ° μν΄ setterλ₯Ό νμ©νλ μ½λκ° μμ΅λλ€).