-λμ μ°μ°μ κ΄λ ¨ μ¬ν
λμ μ°μ°μμ μμμ λν΄νΈ λ²μ μ λ©€λ²λ³ λμ μ μ¬μ©νλ€. λ©€λ²λ³ λμ μ νκΉ κ°μ²΄μ κ° λ©€λ²μ μμ€ κ°μ²΄μ ν΄λΉνλ λ©€λ²μ κ°μ΄ λμ λλ€. κ°μ²΄κ° νμ ν΄λμ€μ μνλ€λ©΄, μ»΄νμΌλ¬λ κΈ°μ΄ ν΄λμ€ λμ μ°μ°μλ₯Ό μ¬μ©νμ¬ νμ ν΄λμ€ κ°μ²΄μ κΈ°μ΄ ν΄λμ€ λΆλΆμ λν λμ μ μ²λ¦¬νλ€.
ν΄λμ€ μμ±μκ° newλ₯Ό μ¬μ©νμ¬ ν¬μΈν°λ₯Ό μ΄κΈ°ννκ³ μλ€λ©΄, λͺ μμ λμ μ°μ°μλ₯Ό μ 곡ν΄μΌ νλ€. c++λ νμ ν΄λμ€ κ°μ²΄μ κΈ°μ΄ λΆλΆμ μν΄ κΈ°μ΄ ν΄λμ€ λμ μ°μ°μλ₯Ό μ¬μ©νκΈ° λλ¬Έμ, νΉλ³ν μ£Όμλ₯Ό μνλ λ°μ΄ν° λ©€λ²λ₯Ό μΆκ°νμ§ μλ ν, νμ ν΄λμ€λ₯Ό μν΄ λμ μ°μ°μλ₯Ό λ€μ μ μν νμλ μλ€.
νμ ν΄λμ€κ° newλ₯Ό μ¬μ©νκ³ μκ³ , λͺ μμ λμ μ°μ°μλ₯Ό μ 곡ν΄μΌ ν λ, λμ μ°μ°μλ μλ‘μ΄ λ©€λ²λ§ μ 곡νλ κ²μ΄ μλλΌ κ·Έ ν΄λμ€μ λͺ¨λ λ©€λ²λ€μ μ 곡ν΄μΌ νλ€.
hasDMA &hasDMA::operator=(const hasDMA &hs)
{
if(this==&hs)
return *this;
baseDMA::operator=(hs); //κΈ°μ΄ ν΄λμ€ λΆλΆ 볡μ¬
delete[] style;
style = new char ...
...
return *this;
}
νμ ν΄λμ€ κ°μ²΄λ₯Ό κΈ°μ΄ ν΄λμ€ κ°μ²΄μ λμ ν κ²½μ°, λμ ꡬ문μ μΌμͺ½μ μλ κ°μ²΄μ μν΄ νΈμΆλλ λ©μλλ‘ λ²μλλ€. νμ ν΄λμ€ κ°μ²΄λ₯Ό κΈ°μ΄ ν΄λμ€ κ°μ²΄μ λμ ν μ μμΌλ, κΈ°μ΄ ν΄λμ€ λ©€λ²λ€λ§ λμ μ΄ μ΄λ£¨μ΄μ§λ€.
κ·Έ λ°λμ κ²½μ°, νμ ν΄λμ€ μ°Έμ‘°λ κΈ°μ΄ ν΄λμ€ κ°μ²΄λ₯Ό μλμΌλ‘ μ°Έμ‘°ν μ μκΈ° λλ¬Έμ λ³ν μμ±μκ° μλ€λ©΄ λΆκ°λ₯νλ€. λ³ν μμ±μκ° μ‘΄μ¬νλ©΄, νλ‘κ·Έλ¨μ μ΄ μμ±μλ₯Ό μ¬μ©νμ¬ μμμ μΈ κ°μ²΄λ₯Ό μμ±νκ³ κ·Έ μμ κ°μ²΄λ₯Ό λμ μ°μ°μμ 맀κ°λ³μλ‘ μ λ¬νλ€.
λ€λ₯Έ λ°©λλ‘, κΈ°μ΄ ν΄λμ€λ₯Ό νμ ν΄λμ€μ λμ νκΈ° μν λμ μ°μ°μλ₯Ό μ μν μλ μλ€.
-private λ©€λ²μ protected λ©€λ²
protected λ©€λ²λ νμ ν΄λμ€μ λν΄ public λ©€λ²μ κ°μ μν μ νμ§λ§, λ°κΉ₯μΈμμ λν΄μλ private λ©€λ²μ²λΌ νλνλ€. νμ ν΄λμ€λ κΈ°μ΄ ν΄λμ€μ protected λ©€λ²μ μ§μ μ κ·Όν μ μλ€. κ·Έλ¬λ κΈ°μ΄ ν΄λμ€ λ©€λ² ν¨μλ₯Ό ν΅ν΄μλ§ private λ©€λ²μ μ κ·Όν μ μλ€.
-κ°μ λ©μλ
κΈ°μ΄ ν΄λμ€λ₯Ό μ€κ³ν λ, ν΄λμ€ λ©μλλ€μ κ°μμΌλ‘ λ§λ€ κ²μΈμ§ κ²°μ ν΄μΌ νλ€. νμ ν΄λμ€μμ λ©μλλ₯Ό λ€μ μ μνλ €λ©΄, κΈ°μ΄ ν΄λμ€μμ κ·Έ λ©μλλ₯Ό κ°μμΌλ‘ μ μνλΌ.
-νλ λ κ΄λ ¨ μ¬ν
νλ λ ν¨μλ ν΄λμ€ λ©€λ²κ° μλκΈ° λλ¬Έμ μμλμ§ μλλ€. κ·Έλ¬λ, νμ ν΄λμ€μ νλ λλ₯Ό κΈ°μ΄ ν΄λμ€μ νλ λλ‘ μ¬μ© κ°λ₯νλ€.
νμ ν΄λμ€ μ°Έμ‘°λ ν¬μΈν°λ₯Ό κΈ°μ΄ ν΄λμ€μμ κ·Έμ λμνλ κ²μΌλ‘ λ°μ΄ν°ν μΊμ€νΈλ₯Ό μ€μνκ³ , κ·Έ λ°μ΄ν°ν μΊμ€νΈ μ°Έμ‘°λ ν¬μΈν°λ₯Ό μ¬μ©νμ¬ κΈ°μ΄ ν΄λμ€ νλ λλ₯Ό νΈμΆνλ κ²μ΄λ€.
ostream &operator<<(ostream &os,const hasDMA &hs)
{
os<<(const baseDMA &)hs;
//operator<<(ostream &,const baseDMA &)λ₯Ό μν΄ λ°μ΄ν°ν μΊμ€νΈ
...
}
-κΈ°μ΄ ν΄λμ€ λ©μλμ μ¬μ©
- νμ ν΄λμ€ κ°μ²΄λ, κ·Έ νμ ν΄λμ€κ° λ©μλλ€μ λ€μ μ μνμ§ μλλ€λ©΄, μμλ κΈ°μ΄ ν΄λμ€ λ©μλλ€μ μλμΌλ‘ μ¬μ©
- νμ ν΄λμ€ νκ΄΄μλ κΈ°μ΄ ν΄λμ€ μμ±μλ₯Ό μλμΌλ‘ νΈμΆ
- νμ ν΄λμ€ μμ±μλ λ©€λ² μ΄κΈ°μ 리μ€νΈμμ λ€λ₯Έ μμ±μλ₯Ό μ§μ νμ§ μλλ€λ©΄, κΈ°μ΄ ν΄λμ€ λν΄νΈ μμ±μλ₯Ό μλμΌλ‘ νΈμΆ
- νμ ν΄λμ€ μμ±μλ λ©€λ² μ΄κΈ°μ 리μ€νΈμ μ§μ λ κΈ°μ΄ ν΄λμ€ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆ
- νμ ν΄λμ€ λ©μλλ€μ publicκ³Ό protected κΈ°μ΄ ν΄λμ€ λ©μλλ€μ νΈμΆνκΈ° μν΄ μ¬μ© λ²μ κ²°μ μ°μ°μ μ¬μ© κ°λ₯
- νμ ν΄λμ€μ νλ λλ, νμ ν΄λμ€ μ°Έμ‘°λ ν¬μΈν°λ₯Ό κΈ°μ΄ ν΄λμ€ μ°Έμ‘°λ ν¬μΈν°λ‘ λ°μ΄ν°ν μΊμ€νΈλ₯Ό μ€μνκ³ , κ·Έλ κ² λ³νλ μ°Έμ‘°λ ν¬μΈν°λ₯Ό μ¬μ©νμ¬ κΈ°μ΄ ν΄λμ€μ νλ λλ₯Ό νΈμΆ κ°λ₯