π€νλ‘κ·Έλλ° μΈμ΄/C++ μ 리
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..
C++ μ 리 - 31 (μΆμν λ°μ΄ν°ν(abstract data type, ADT), μ°μ°μ μ€λ²λ‘λ©, νλ λμ λμ )
μΆμν λ°μ΄ν°ν(abstract data type, ADT) μ€νμ νΉμ±μ μΌλ°μ μ΄κ³ μΆμμ μΈ λ°©μμΌλ‘ μ΄ν΄λ³΄μ. λΉ μ€ν μμ± κ°λ₯ μ€νμ κΌλκΈ°μ νλͺ© μΆκ° κ°λ₯ μ€νμ κΌλκΈ°μμ νλͺ© μμ κ°λ₯ μ€νμ΄ κ°λ μ°¨μλμ§ κ²μ¬ κ°λ₯ μ€νμ΄ λΉμ΄μλμ§ κ²μ¬ κ°λ₯ ν΄λμ€μ νμ© μ°μ°μ μ€λ²λ‘λ© μ°μ°μ μ€λ²λ‘λ©μ c++κ° κ°μ§ λ€ν νΉμ±μ ν μμ΄λ€. μ°μ°μ μ€λ²λ‘λ©μ, c++ μ°μ°μλ€μ λ€μ€μ μΈ μλ―Έλ₯Ό λΆμ¬νλ κ²μ΄λ€. c++μμλ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©μ μ μ λ°μ΄ν°ν κΉμ§ νμ₯ν μ μλ€. μλ₯Ό λ€μ΄ 2κ°μ λ°°μ΄μ λνλ κ²μ μμ£Ό μ¬μ΄ κ³μ°μ΄λ€. for(int i=0;i(ν΄λμ€ λ©€λ² μ κ·Ό ν¬μΈν° μ°μ°μ) νλ λμ λμ νλ λλ λ€μκ³Ό κ°μ μΈ κ°μ§ ννλ‘ μ¬μ©λ¨. νλ λ ν¨μ νλ λ ν΄λμ€ νλ λ λ©€λ²..
C++ μ 리 - 30 (μμ±μ μ¬μ©νκΈ°, λν΄νΈ μμ±μ, νκ΄΄μ, c++11μ 리μ€νΈ μ΄κΈ°ν, const λ©€λ² ν¨μ, this ν¬μΈν°, κ°μ²΄ λ°°μ΄, ν΄λμ€ μ¬μ© λ²μ, λ²μκ° μ ν΄μ§ μ΄κ±°(c++11))
μμ±μ μ¬μ©νκΈ° 1. Stock food = Stock("World Cabbage",250,1.25); 2. Stock garment("Furry Mason",50,2.5); newλ₯Ό μ¬μ©ν λ μμ±μ μ¬μ©νλ λ² Stock *pstock = new Stock("Ele G",18,19.0); μμ±μλ κ°μ²΄μ μν΄ νΈμΆλλ κ²μ΄ μλλΌ, κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©λλ€. λν΄νΈ μμ±μ λν΄νΈ μμ±μλ λͺ μμ μΈ μ΄κΈ°ν κ°μ μ 곡νμ§ μμ λ κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©νλ μμ±μμ΄λ€. Stock fluffy_the_cat; //λν΄νΈ μμ±μ μ¬μ© μ¬μ©μκ° μ΄λ ν μμ±μλ μ μνμ§ μμ κ²½μ°μλ§ μ»΄νμΌλ¬κ° λν΄νΈ μμ±μλ₯Ό μ 곡νλ€. μμ±μλ₯Ό μ μν ν λν΄νΈ μμ±μλ₯Ό μ μνλ λ κ°μ§ λ°©λ² 1. κΈ°μ‘΄μ μμ±μμ μλ..