Collecting Parameter ¶
λͺλͺ λ©μλμ κ²°κ³Όμ νλ ₯νλ μ½λ μ
μ μ΄λ»κ² 리ν΄ν κ²μΈκ°?(?)
ComposedMethodμ λ¨μ μ€ νλλ, μμ λ©μλλ€ μ¬μ΄μ μ°κ΄λλ¬Έμ΄λ€. ν° λ©μλ νλμμ 곡μ λμλ μμ λ³μλ€μ΄, μ΄μ λ μμ λ©μλλ€ μ¬μ΄μ 곡μ λλ€. κ°μ₯ ν΄κ²°νκΈ° μ¬μ΄ λ°©λ²μ ComposedMethodλ₯Ό μμ κ³ λ€μ νλμ ν° λ©μλμ λ€ λλ €λ£λ κ²μ΄μ§λ§, μμ’λ€. λ λ€λ₯Έ ν΄κ²°μ±
μΌλ‘λ μ΄ μμ λ©μλλ€ μ¬μ΄μμ 곡μ λλ μμ λ³μλ₯Ό λ©€λ²λ³μμ λ£λ κ²μ΄λ€. μ΄κ²μ κ°μ²΄μ μλͺ
κΈ°κ° λμ μ ν¨νκ² μλλΌ, μ λ©μλλ€μ΄ μ€νλ λμλ§ μ ν¨νλ€. μμ μμ’λ€.
μ°λ¦¬μ ν΄κ²°μ±
μ, λ©μλλ€λ§λ€ νμν νλΌλ©ν°λ€μ λ겨주λ κ²μ΄λ€. μ΄κ²λ μ’ λ§μ€μ¬μ§λ λ°©λ²μ΄κΈ΄ νλ, λ€λ₯Έ κ²λ€λ³΄λ¨ λ«λ€.
μ΄λ€ μ½λ μ
μ κΈ°νΌλ¨κ³Ό λ―ΈνΌλ
λ₯Ό μΆμΆν΄λ΄λ μ½λλ₯Ό 보μ.
~cpp vector<People> marriedMenAndUnmarriedWomen() { vector<People> result; for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it) { if(it->isMarried() and it->isMan()) result.add(*it); } for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it) { if(it->isUnmarried() and it->isWoman()) result.add(*it); } return result; }ComposedMethodλ₯Ό μ μ©ν΄λ³΄μ.
~cpp vector<People> marriedMen() { vector<People> result; for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it) { if(it->isMarried() and it->isMan()) result.add(*it); } return result; } vector<People> unmarriedMen() { vector<People> result; for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it) { if(it->isUnmarried() and it->isWoman()) result.add(*it); } return result; } vector<People> marriedMenAndUnmarriedWomen() { return marriedMen() + unmarriedMen(); // λ μ§ μλ μ§λ λͺ¨λ₯΄κ² μ§λ§ λλ€κ³ κ°μ νμ. }
μ½λ μ
μ 리ν΄νμ§ λ§κ³ κ°κ°μ μ½λ μ
μ λνμ.
~cpp vector<People> marriedMenAndUnmarriedWomen() { vector<People> result; addMarriedMenTo(result); addUnmarriedWomenTo(result); return result; } void addMarriedMen(vector<People>& aCollection) { for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it) { if(it->isMarried() and it->isMan()) aCollection.add(*it); } } void addUnmarriedMen(vector<People>& aCollection) { for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it) { if(it->isUnmarried() and it->isWoman()) aCollection.add(*it); } }
μ¦, λ λ©μλμ κ²°κ³Όλ₯Ό λͺ¨μΌλ κ²½μ°μΈλ°, 그리 νν κ²½μ°λ μλμλκ±Έλ‘ κΈ°μ΅. μ½κ°μ λ€λ₯΄κΈ΄ νμ§λ§ λμ κ²½μ° CollectionParameter μ μ±κ²©μΌλ‘ νμν κ²½μ°κ° read/write λ± I/O κ° λ΄λΆμ μΌλ‘ νμν λ λλ Serialization λ±μ μΌμ΄ νμν λ. κ·Έ κ²½μ° I/O λΆλΆμ Stream ν΄λμ€λ‘ λ§λ€κ³ (C++ μ Stream μ μ°λμ§ λλ μ§μ Stream ν΄λμ€ λ§λ€μ΄ μ°λμ§) parameter λ‘ λκ²¨μ£Όκ³ κ·Έ νλΌλ©ν°μ λ©μλλ₯Ό μ¬μ©νλ ννμμ. --1002