Excute Around Method ¶
κ°μ΄ μΌμ΄λμΌλ§ νλ νλμ μ΄λ»κ² ννμ ν μ μμκΉ? μλ₯Ό λ€λ©΄ νμΌμ μ΄μλ€λ©΄ λ«μμΌνλ€. DCλ₯Ό μ»μ΄μμΌλ©΄ ν΄μ ν΄μ€μΌ νλ€. λ±λ±...
λ μ΄λ°μμΌλ‘ ν΄μ£Όλ©΄ λ λ―νλ€.
λ μ΄λ°μμΌλ‘ ν΄μ£Όλ©΄ λ λ―νλ€.
~cpp
class Foo
{
public:
void openFilenClose()
{
ifstream fin("data.txt");
/* ... μμ
*/
fin.close();
}
};
λ΄κ° 보기μ μ λ°©λ²μ΄ μ’μ보μ΄λλ°... ν΄λΌμ΄μΈνΈλ‘ νμ¬κΈ μ΄ κ°μ²΄λ₯Ό λ°°μ°κΈ°κ° λ μ΄λ ΅κ² λ§λ λ€κ³ νλ€. κ·Έλ΄κΉ? μ λͺ¨λ₯΄κ² λ€. μ’ λ μ¨λ³΄λ©΄ μ λ―νλ€.μ€λͺ°ν ν¬μμλ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ ν΄κ²°νκ³ μλ€. μ€λͺ°ν ν¬μλ Blockμ΄λΌλ κ°μ²΄κ° μλ€. μ΄ λΈλ‘μ νλΌλ©ν°λ‘ λ겨주λ κ²μ΄λ€. μ¦ 1. νμΌ μ°λ€. 2. μμ
λΈλ‘μ νλΌλ©ν°λ‘ λ겨μ€λ€. 3. νμΌ λ«λλ€. μ΄λ°μμΌλ‘ λλ κ²μ΄λ€. C++μμλ ν¨μ ν¬μΈν°λ₯Ό λ겨주λ λ°©λ²μΌλ‘ ν΄κ²°ν μ μμ λ―νλ€. μ΄λ° κ²μ Higher Order Programmingμ΄λΌκ³ νλ κ² κ°λ€.(SICP) C++μμ λ©€λ² ν¨μλ μμΉμ μΌλ‘ ν¨μ ν¬μΈν°κ° μλλ κ²μΌλ‘ μκ³ μλ€. κ·Έλλ κ·Έλ₯ κ·Έλ°κ° λ³΄λ€ νμ. μ λ§ μ΄μνλ€.--;
C++ μμλ λ©€λ²ν¨μμ λν΄ ν¨μν¬μΈν° λκΈ°κΈ°κ° κ°λ₯ν¨. (λ¬Έλ²μ μκ° μλ¨) --1002
~cpp
void do( (void*) writeProcess() )
{
fin.open("data.txt"); // λ§λ?--;
writeProcess();
fin.close();
}
void writeData()
{
fin << "νμ΄";
fin << "nice to meet you."
}
int main()
{
do(writeData);
}









