π€νλ‘κ·Έλλ° μΈμ΄
C++ μ 리 - 41 (ν νλ¦Ώ ꡬ체ν, λ©€λ² ν νλ¦Ώ, 맀κ°λ³μ ν νλ¦Ώ, ν νλ¦Ώ ν΄λμ€μ νλ λ ν¨μ, ν νλ¦Ώ ν΄λμ€μ λν λ°μ΄λ ν νλ¦Ώ νλ λ ν¨μ, ν νλ¦Ώ ν΄λμ€μ λν μΈλ°μ΄λ ν νλ¦Ώ νλ λ ..
ν νλ¦Ώ ꡬ체ν -μμμ ꡬ체ν μ¬μ©νκΈ° μνλ λ°μ΄ν°νμ λνλ΄λ νλ λλ κ·Έ μ΄μμ κ°μ²΄λ₯Ό μ μΈνλ©΄ μ»΄νμΌλ¬λ ν¬κ΄μ μΈ ν νλ¦Ώμ΄ μ 곡νλ μ€κ³λλ₯Ό μ¬μ©νμ¬ νλμ νΉμνλ ν΄λμ€ μ μλ₯Ό μμ±νλ€. ArrayTP stuff; //μμμ ꡬ체ν -λͺ μμ ꡬ체ν ν€μλ templateμ μ¬μ©νμ¬ ν΄λμ€λ₯Ό μ μΈνκ³ , μ¬μ©νλ €λ λ°μ΄ν°νμ λνλμ λ, μ»΄νμΌλ¬λ λͺ μμ ꡬ체νλ₯Ό μμ±νλ€. template class ArrayTP; ArrayTPμ΄ ν΄λμ€λΌκ³ μ μΈνλ€. μ΄ μ μΈμ ν νλ¦Ώ μ μμ λμΌν μ΄λ¦ κ³΅κ° μμ μμ΄μΌ νλ€. -λͺ μμ νΉμν λͺ μμ νΉμνλ ν¬κ΄μ μΈ ν νλ¦Ώ λμ μ, μ¬μ©νλ €λ νΉμ ν λ°μ΄ν°νμ μν μ μμ΄λ€. ν¬κ΄μ μΈ λ°μ΄ν°ν λμ ꡬ체μ μΈ νλμ λ°μ΄ν°νμ λ§κ² μ μλ ν νλ¦Ώ νμμ μ·¨..
C++ μ 리 - 40 (λ€μ€ μμ μμ½, ν΄λμ€ ν νλ¦Ώ, ν¬μΈν°λ€μ μ€νμ λ°λ₯΄κ² μ¬μ©νλ κ²½μ°)
λ€μ€ μμ μμ½ κ°μ κΈ°μ΄ ν΄λμ€λ€μ μ¬μ©νμ§ μλ λ€μ€ μμ λ³΅μ΅ νμ ν΄λμ€κ° μλ‘ λ€λ₯Έ κΈ°μ΄ ν΄λμ€λ‘λΆν° μ΄λ¦μ΄ κ°μ λ λ©€λ²λ₯Ό μμνλ€λ©΄, λ λ©€λ²λ₯Ό ꡬλΆνκΈ° μν΄ κ·Έ νμ ν΄λμ€μμ ν΄λμ€ μ νμλ₯Ό μ¬μ©ν νμκ° μλ€. κ°μ κΈ°μ΄ ν΄λμ€λ€μ μ¬μ©νλ λ€μ€ μμμ λν΄ μ΄ν΄λ³΄μ. νμ ν΄λμ€κ° νμμ λνλΌ λ ν€μλ virtualμ μ¬μ©νλ€λ©΄, κ·Έκ²μ κΈ°μ΄ ν΄λμ€λ κ°μ κΈ°μ΄ ν΄λμ€κ° λλ€. class marketing : public virtual reality {...}; νλμ κ°μ κΈ°μ΄ ν΄λμ€μ μ¬λ¬ μΈμ€ν΄μ€λ‘λΆν° μμλλ ν΄λμ€λ, λ¨ νλμ κΈ°μ΄ ν΄λμ€ κ°μ²΄λ§ μμνλ€. κ°μ μ μΈ κ°μ κΈ°μ΄ ν΄λμ€λ₯Ό μ¬μ©νλ νμ ν΄λμ€λ, κ·Έ νμ ν΄λμ€μ μμ±μλ€μ΄ κ°μ μ μΈ κ°μ κΈ°μ΄ ν΄λμ€ μμ±μ..
C++ μ 리 - 39 (usingμ μ¬μ©νμ¬ μ κ·Ό λ€μ μ μνκΈ°, λ€μ€ μμ, κ°μ κΈ°μ΄ ν΄λμ€μ κ°μμ΄ μλ κΈ°μ΄ ν΄λμ€μ νΌν©, κ°μ κΈ°μ΄ ν΄λμ€μ κΈ°μ΄ μ°μ)
usingμ μ¬μ©νμ¬ μ κ·Ό λ€μ μ μνκΈ° protected νμμ΄λ private νμμ μ¬μ©ν λ, κΈ°μ΄ ν΄λμ€μ public λ©€λ²λ€μ protected λ©€λ² λλ private λ©€λ²κ° λλ€. μ΄λ€ νΉμ κΈ°μ΄ ν΄λμ€ λ©μλλ₯Ό νμ ν΄λμ€μμ publicμΌλ‘ μ¬μ©νκ³ μΆλ€κ³ κ°μ νμ. ν κ°μ§ λ°©λ²μ, κΈ°μ΄ ν΄λμ€ λ©μλλ₯Ό μ¬μ©νλ νμ ν΄λμ€ λ©μλλ₯Ό μ μνλ κ²μ΄λ€. double Student::Sum() const // Studentλ κΈ°μ΄ ν΄λμ€, sum()μ valarray λ©μλ {return std::valarray::sum();} νλμ ν¨μ νΈμΆμ λ€λ₯Έ ν¨μ μμ λ£μ μ μλ λ€λ₯Έ λ°©λκ° μλ€. using μ μΈμ μ¬μ©νμ¬ νμ ν΄λμ€μμ μ¬μ©ν νΉμ κΈ°μ΄ ν΄λμ€ λ©€λ²λ₯Ό μ§μ νλ κ²μ΄λ€...
C++ μ 리 - 38 (valarray ν΄λμ€: νμ΄λ³΄κΈ°, μ΄κΈ°ν μμ, private μμ, κΈ°μ΄ ν΄λμ€ λ©μλμ μ κ·ΌνκΈ°, κΈ°μ΄ ν΄λμ€ κ°μ²΄μ μ κ·ΌνκΈ°, κΈ°μ΄ ν΄λμ€ νλ λμ μ κ·ΌνκΈ°, 컨ν μΈλ¨ΌνΈμ private μμ)
c++μ½λμ μ¬νμ© κ°μ²΄ λ©€λ²λ₯Ό κ°μ§λ ν΄λμ€ valarray ν΄λμ€: νμ΄λ³΄κΈ° valarray ν€λ νμΌμ΄ valarray ν΄λμ€λ₯Ό μ§μνλ€. μ΄ ν΄λμ€λ μμΉ κ°λ€μ λ€λ£¨λ κ²μ΄ λͺ©νμ΄λ€. valarrayλ ν νλ¦Ώ ν΄λμ€λ‘ μ μλμ΄ μλ€. ν νλ¦Ώ μΈ‘λ©΄μμ 보면, κ°μ²΄λ₯Ό μ μΈν λ ꡬ체μ μΈ λ°μ΄ν°νμ μ§μ ν΄μΌ νλ€. κ°μ²΄λ₯Ό μ μΈν λ μνλ λ°μ΄ν°νμ΄ λ€μ΄μλ κ°κ΄νΈ()μμ μλ³μ valarrayλ₯Ό λΆμ¬μΌ νλ€. valarray q_values; //intνμ λ°°μ΄ λ€μμ μμ±μλ€ μ€ μΌλΆλ₯Ό μ¬μ©νλ λͺ κ°μ§ μμ΄λ€. double gpa[5] = {3.1,3.5,3.8,2.9,3.3}; valarray v1; //double νμ λ°°μ΄, ν¬κΈ° O valarray v2(8); //intν μμ 8κ°μ§λ¦¬ ..
C++ μ 리 - 37 (λμ μ°μ°μ κ΄λ ¨ μ¬ν, private λ©€λ²μ protected λ©€λ², κ°μ λ©μλ, νλ λ κ΄λ ¨ μ¬ν, κΈ°μ΄ ν΄λμ€ λ©μλμ μ¬μ©)
-λμ μ°μ°μ κ΄λ ¨ μ¬ν λμ μ°μ°μμ μμμ λν΄νΈ λ²μ μ λ©€λ²λ³ λμ μ μ¬μ©νλ€. λ©€λ²λ³ λμ μ νκΉ κ°μ²΄μ κ° λ©€λ²μ μμ€ κ°μ²΄μ ν΄λΉνλ λ©€λ²μ κ°μ΄ λμ λλ€. κ°μ²΄κ° νμ ν΄λμ€μ μνλ€λ©΄, μ»΄νμΌλ¬λ κΈ°μ΄ ν΄λμ€ λμ μ°μ°μλ₯Ό μ¬μ©νμ¬ νμ ν΄λμ€ κ°μ²΄μ κΈ°μ΄ ν΄λμ€ λΆλΆμ λν λμ μ μ²λ¦¬νλ€. ν΄λμ€ μμ±μκ° newλ₯Ό μ¬μ©νμ¬ ν¬μΈν°λ₯Ό μ΄κΈ°ννκ³ μλ€λ©΄, λͺ μμ λμ μ°μ°μλ₯Ό μ 곡ν΄μΌ νλ€. c++λ νμ ν΄λμ€ κ°μ²΄μ κΈ°μ΄ λΆλΆμ μν΄ κΈ°μ΄ ν΄λμ€ λμ μ°μ°μλ₯Ό μ¬μ©νκΈ° λλ¬Έμ, νΉλ³ν μ£Όμλ₯Ό μνλ λ°μ΄ν° λ©€λ²λ₯Ό μΆκ°νμ§ μλ ν, νμ ν΄λμ€λ₯Ό μν΄ λμ μ°μ°μλ₯Ό λ€μ μ μν νμλ μλ€. νμ ν΄λμ€κ° newλ₯Ό μ¬μ©νκ³ μκ³ , λͺ μμ λμ μ°μ°μλ₯Ό μ 곡ν΄μΌ ν λ, λμ μ°μ°μλ μ..
C++ μ 리 - 36 (ν΄λμ€ μ€κ³ 볡μ΅, ν΄λμ€ λ©μλμ κ΄λ ¨λ κ·Έ λ°μ κ³ λ € μ¬ν, κ°μ²΄ 리ν΄κ³Ό μ°Έμ‘° 리ν΄, public μμμ κ΄λ ¨λ κ·Έ λ°μ κ³ λ €μ¬ν)
ν΄λμ€ μ€κ³ λ³΅μ΅ μ»΄νμΌλ¬κ° μλμΌλ‘ μμ±νλ λ©€λ² ν¨μλ€ -λν΄νΈ μμ±μ λν΄νΈ μμ±μλ λ§€κ° λ³μλ₯Ό μ ν μ¬μ©νμ§ μκ±°λ, λͺ¨λ λ§€κ° λ³μκ° λν΄νΈ 맀κ°λ³μλ₯Ό μ¬μ©νλ μμ±μμ΄λ€. μ¬μ©μκ° μμ±μλ₯Ό νλλ μ μνμ§ μμΌλ©΄, μ¬μ©μλ₯Ό λμ νμ¬ μ»΄νμΌλ¬κ° λν΄νΈ μμ±μλ₯Ό μ μνλ€. λ©€λ² μ΄κΈ°μ 리μ€νΈλ₯Ό μ¬μ©νμ¬ κΈ°μ΄ ν΄λμ€ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆνμ§ μκ³ νμ ν΄λμ€ μμ±μλ₯Ό μμ±νλ©΄, μ»΄νμΌλ¬λ μ κ°μ²΄μ κΈ°μ΄ ν΄λμ€ λΆλΆμ μμ±νκΈ° μνμ¬ κΈ°μ΄ ν΄λμ€ λν΄νΈ μμ±μλ₯Ό μ¬μ©νλ€. μ΄λ€ μ’ λ₯ μ΄λ κ°μ μ¬μ©μκ° μμ±μλ₯Ό μ μνλ©΄, μ»΄νμΌλ¬λ λν΄νΈ μμ±μλ₯Ό μ μνμ§ μλλ€. μ΄λ¬ν κ²½μ°, νμν λν΄νΈ μμ±μλ₯Ό μ 곡νλ κ²μ νλ‘κ·Έλλ¨Έμ μ± μμ΄λ€. -λ³΅μ¬ μμ±μ μ΄λ€ ν΄λμ€λ₯Ό μν λ³΅μ¬ μμ±μλ, κ·Έ ..
C++ μ 리 - 35 (μμ: is-a κ΄κ³, public λ€ν μμ, κ°μ λ©μλλ μ νμν κΉ?, μ μ κ²°ν©κ³Ό λμ κ²°ν©, ν¬μΈν°μ μ°Έμ‘°νμ νΈν, κ°μ λ©€λ² ν¨μμ λμ κ²°ν©, μ κ·Όμ μ΄: protected, ABC μ² ν, μμκ³Ό ..
μμ: is-a κ΄κ³ c++λ μμμ 3κ°μ§ νμμΌλ‘ public, protected, privateλ₯Ό κ°μ§κ³ μλ€. public μμμ is-a κ΄κ³λ₯Ό λνλΈλ€. (νμ ν΄λμ€ κ°μ²΄κ° κΈ°μ΄ ν΄λμ€ κ°μ²΄μ΄κΈ°λ ν¨) κΈ°μ΄ ν΄λμ€ κ°μ²΄λ₯Ό λμμΌλ‘ μνν μ μλ λͺ¨λ μμ μ, νμ ν΄λμ€ κ°μ²΄μ λν΄μλ μν κ°λ₯ public λ€ν μμ public λ€ν μμμ ꡬννλ λ κ°μ§ μ€μν λ°©λ²μ΄ μλ€. κΈ°μ΄ ν΄λμ€ λ©μλλ₯Ό νμ ν΄λμ€μμ λ€μ μ μνλ€. κ°μ λ©μλλ₯Ό μ¬μ©νλ€. virtual ν€μλλ λ©μλκ° κ°μ²΄μ μν΄ νΈμΆλμ§ μκ³ μ°Έμ‘°λ ν¬μΈν°μ μν΄ νΈμΆλμμ λ μ΄λ λ©μλλ₯Ό μ¬μ©ν κ²μΈμ§ κ²°μ νλ€. virtual ν€μλλ₯Ό μ¬μ©νμ κ²½μ°μ, νλ‘κ·Έλ¨μ μ°Έμ‘°λ ν¬μΈν°μ μν΄ μ§μλλ κ°μ²΄νμ κΈ°μ΄νμ¬..
C++ μ 리 - 34 (ν¬μΈν°μ κ°μ²΄μ λν μμ½, λ©€λ² μ΄κΈ°μ 리μ€νΈ(member initializer list), ν΄λμ€μ μμ, ν΄λμ€ νμμν€κΈ°, μμ±μ:μ κ·Όμ λνμ¬)
ν¬μΈν°μ κ°μ²΄μ λν μμ½ κ°μ²΄λ₯Ό μ§μνλ ν¬μΈν°λ₯Ό μ¬μ©ν λ λ€μκ³Ό κ°μ λͺ κ°μ§ μ¬νμ μμλμ΄μΌ νλ€. κ°μ²΄λ₯Ό μ§μνλ ν¬μΈν°λ μΌλ°μ μΈ ν¬μΈν° νκΈ° νμμ μ¬μ©νμ¬ μ μΈνλ€. String *glamour; κΈ°μ‘΄μ κ°μ²΄λ₯Ό μ§μνλλ‘ ν¬μΈν°λ₯Ό μ΄κΈ°ν ν μ μλ€. String *first = &sayings[0]; newλ₯Ό μ¬μ©νμ¬ ν¬μΈν°λ₯Ό μ΄κΈ°ν κ°λ₯. μ κ°μ²΄λ₯Ό μμ±ν¨ String *f = new String(sayings[choice]); newλ₯Ό ν΄λμ€μ ν¨κ» μ¬μ©νλ©΄, μλ‘ μμ±λλ κ°μ²΄λ₯Ό μ΄κΈ°ννκΈ° μν΄ μ μ ν ν΄λμ€ μμ±μκ° νΈμΆλλ€. //λν΄νΈ μμ±μ νΈμΆ String *gleep = new String; //String(const char *) μμ±μ νΈμΆ String *glop=ne..
C++ μ 리 - 33 (λ³΅μ¬ μμ±μ, λμ μ°μ°μ, static ν΄λμ€ λ©€λ² λ³μ, κ°μ²΄ 리ν΄μ λν κ΄μ°°, newμ μν κ°μ²΄ μ΄κΈ°ν)
λ³΅μ¬ μμ±μ λ³΅μ¬ μμ±μλ μ΄λ€ κ°μ²΄λ₯Ό μλ‘ μμ±λλ κ°μ²΄μ 볡μ¬νλ λ° μ¬μ©λλ€. μΌλ°μ μΈ λμ μ μ¬μ©λλ κ²μ΄ μλλΌ κ° μ λ¬μ μν ν¨μ 맀κ°λ³μ μ λ¬μ ν¬ν¨ν μ΄κΈ°ν μμ μ μ¬μ©λλ€. ν΄λμ€μ λ³΅μ¬ μμ±μλ μΌλ°μ μΌλ‘ λ€μκ³Ό κ°μ μνμ κ°μ§λ€. Class_name(const Class_name &); λ³΅μ¬ μμ±μλ, μλ‘μ΄ κ°μ²΄κ° μμ±λμ΄ κ°μ μ’ λ₯μ κΈ°μ‘΄μ κ°μ²΄λ‘ μ΄κΈ°νλ λλ§λ€ νΈμΆλλ€. κ°μ²΄λ₯Ό κ°μΌλ‘ μ λ¬νλ©΄ λ³΅μ¬ μμ±μκ° νΈμΆλκΈ° λλ¬Έμ, μ°Έμ‘°λ‘ μ λ¬νλ κ²μ΄ μ’λ€. λν΄νΈ λ³΅μ¬ μμ±μλ static λ©€λ²λ₯Ό μ μΈν λ©€λ²λ€μ λ©€λ²λ³λ‘ 볡μ¬νλ€. μλ₯Ό λ€μ΄, mottoκ° stringBad κ°μ²΄λΌκ³ κ°μ νλ©΄, λ€μκ³Ό κ°μ λ€ κ°μ§μ μ μ μ μΈμ΄ λ³΅μ¬ μμ±μλ₯Ό νΈμΆνλ€. StringBad dit..